Published by

Comments

# re: Paul Wilson starts Blogging

It's about time you got on-board! Remember to sign into IM sometimes so I can ask you more ASP.NET questions!

Wednesday, April 09, 2003 12:42 PM by Kirk Allen Evans

# re: Paul Wilson starts Blogging

Welcome Paul! I'm a big fan of a couple of the tools on your site...

Wednesday, April 09, 2003 12:59 PM by Datagrid Girl

# re: AppSettings can Reference an External Config File

Cool!

Wednesday, April 09, 2003 2:11 PM by Chris Frazier

# app/web.config file can reference an external config file : Fabrice's weblog

app/web.config file can reference an external config file : Fabrice's weblog

Wednesday, April 09, 2003 3:51 PM by TrackBack

# re: AppSettings can Reference an External Config File : Paul Wilson's .NET Blog

re: AppSettings can Reference an External Config File : Paul Wilson's .NET Blog

Wednesday, April 09, 2003 3:51 PM by TrackBack

# Great tip by Paul Wilson... : Loosely Coupled

Great tip by Paul Wilson... : Loosely Coupled

Wednesday, April 09, 2003 3:51 PM by TrackBack

# AppSettings can Reference an External Config File : Wes' Puzzling Blog

AppSettings can Reference an External Config File : Wes' Puzzling Blog

Wednesday, April 09, 2003 3:51 PM by TrackBack

# re: Paul Wilson starts Blogging

About time Paul.. Welcome.. :-) - Anil

Wednesday, April 09, 2003 7:41 PM by Anil John

# re: AppSettings can Reference an External Config File

That looks really great Paul.

I have a quick question, can you use this method to define multiple additional config files?

Say you have e.g security.config, httphandler.config, errorhandler.config to easily seperate it all.

Would this be possible and how?

Thanks,

John

Thursday, April 10, 2003 7:35 AM by John Mandia

# re: AppSettings can Reference an External Config File

That looks really great Paul.

I have a quick question, can you use this method to define multiple additional config files?

Say you have e.g security.config, httphandler.config, errorhandler.config to easily seperate it all.

Would this be possible and how?

Thanks,

John

Thursday, April 10, 2003 7:35 AM by John Mandia

# re: re: AppSettings can Reference an External Config File

I looked at this as well, I don't think you can define multiple files but I believe you can link them. Meaning your app.config appsetting can have file=standard.config and then the appsetting for the standard.config can have file=error.config an so on. I haven't tried this but it seems as though it would work.

Wes

Thursday, April 10, 2003 11:19 AM by Wes Haggard

# Something to note about .NET 1.1 : Bob.NET

Something to note about .NET 1.1 : Bob.NET

Thursday, April 10, 2003 11:20 AM by TrackBack

# QuickFix for Bug in ASP.NET Version 1.1 : Paul Wilson's .NET Blog

QuickFix for Bug in ASP.NET Version 1.1 : Paul Wilson's .NET Blog

Thursday, April 10, 2003 11:20 AM by TrackBack

# doPostBack Workaround : ScottW's ASP.NET WebLog

doPostBack Workaround : ScottW's ASP.NET WebLog

Thursday, April 10, 2003 11:20 AM by TrackBack

# __doPostBack problems : Joshua Prismon's Technical weblog

__doPostBack problems : Joshua Prismon's Technical weblog

Thursday, April 10, 2003 11:20 AM by TrackBack

# re: Paul Wilson starts Blogging

Wow... I learned a lot from you about templates in ASP.NET and I'm glad to see you blogging now. Welcome the community :).

Saturday, April 12, 2003 12:51 AM by Samer Ibrahim

# re: Renewing Domain Names

That's why I use GoDaddy.com. They are extremely efficient and extremely cheap.

Wednesday, April 16, 2003 9:20 PM by Robert McLaws

# re: WilsonDotNet.com Running on .NET 1.1

Paul,
I use them too, and didn't think that they would implement it so fast, but they have ASP.Net 1.1/1.0 listed on their site. I guess I'll be the next one to request a migration to 1.1

Thursday, April 17, 2003 1:46 PM by DonXML

# re: Atlanta DotNetWeblogs Lunch

I am also in the atlanta area. You can also check out a Yahoo! group that's recently been created for .NET jobs in the Atlanta area: http://groups.yahoo.com/group/atlantadotnet-jobs/
(I think they are going to announce it at the next Atlanta .NET User group meeting http://www.atlantadotnet.org/)

Tuesday, April 22, 2003 2:44 PM by Brenton House

# re: Earthquake Rocks the SouthEast

This anomaly happened in Vermont sometime last year also. The epicenter was over in the Adirondacks. Throughout Vermont, the general consensus was that most people's first reaction was that their boiler had blown up! It was also early in the morning. I don't know if there was ever an earthquake here before. The world is changing!!

Tuesday, April 29, 2003 7:12 AM by julie

# Workaround for Bug in ASP.NET Version 1.1 : Paul Wilson's .NET Blog

Workaround for Bug in ASP.NET Version 1.1 : Paul Wilson's .NET Blog

Tuesday, April 29, 2003 10:43 PM by TrackBack

# re: NUnit, Log4Net, and O/R Mappers

NUnit is the greatest thing since sliced bread. While not mandatory at my shop, it is <ahem&rt;strongly recommended</ahem&rt;

Thursday, May 01, 2003 1:15 PM by Brad More

# re: Microsoft's Free PocketPC Offer

DOH!
In addition, the employees and contractors working for Microsoft, ViewSonic, The Jolesch Group, and ClientLogic are not eligible to participate in this offer.

Friday, May 02, 2003 7:30 AM by Andrew Law

# A Blog for Graymad

A Blog for Graymad

Monday, May 05, 2003 8:22 AM by TrackBack

# re: ValidateRequest in ASP.NET v1.1

I'm with you on this. ValidateRequest is a great new feature and can only help by being enabled by default.

Monday, May 05, 2003 10:45 AM by Chad Humphries

# re: ValidateRequest in ASP.NET v1.1

Sure, great feature - but I feel strongly that changing a default (any default, but especially one this signifigant) should be listed as a breaking change. It's pretty hard to argue that this is NOT a breaking change when you look at all the things that it... well, breaks.

Monday, May 05, 2003 2:38 PM by Philip Rieck

# Paul Wilson's .NET Blog

Paul Wilson's .NET Blog

Wednesday, May 07, 2003 8:55 AM by TrackBack

# re: ASP.NET Version 2.0 Public Preview

SQL Dependency? *falls over and dies from heart attack*

Awesome!!! (y)

But is it fast and efficient? You could do this before, but there was never really a need to because of the extra overhead it would take, making it pointless...so is it different now that it's backed in?

Wednesday, May 07, 2003 11:58 AM by HumanCompiler

# re: NUnit, Log4Net, and O/R Mappers

Two comments...

NUnit works nice, but what do you think about NUnitASP (http://nunitasp.sourceforge.net/)?

As for O/R mappers, I tried .NET edition of Pragmatier Data Tier Builder (http://www.pragmatier.com/) and I was really impressed. btw, personal edition is free.

Also NHibernate project looks promising (http://sourceforge.net/projects/nhibernate).

thanks,
slavo.

Friday, May 09, 2003 4:44 AM by Slavomir Furman

# re: Best Sandwich in the World

What are you, some kinda sandwich geek?

Sounds good. I've always said, Italians might have invented pizza but the Greeks perfected it. Look no further than Houston Pizza or Western Pizza in Regina, Saskatchewan two purveyors of the finest style of pizza this world has to offer. When it comes to pizza, Chicago has nothing on Regina. Now the Greeks are taking over sandwiches? Look out.

Take care,
Eli.

Monday, May 12, 2003 10:25 PM by Eli Robillard

# re: ValidateRequest in ASP.NET v1.1

I agree with Philip. I like this feature, but it breaks a site which supposed to be live!

In this case it should be in .Net 2.0 or disable by default.

If you have a site with dozens of page, some containing forms, some that you want to validate, it's a pain to change the code.

Tuesday, May 13, 2003 3:34 AM by Paschal

# re: ValidateRequest in ASP.NET v1.1

I don't think the problem is with ASP.NET 1.1 defaulting to ValidateRequest="True". The problem is that a default install of the 1.1 framework changes all existing ASP.NET projects to point at the 1.0 framework.

Friday, May 16, 2003 10:59 AM by Dave R

# re: ASP.NET Version 2.0 Public Preview

sounds great! Do you know the timeline for release?

Monday, May 19, 2003 3:49 PM by Monsur

# re: ASP.NET Version 2.0 Public Preview

I think its slated for sometime in 2004, but I don't know that I've heard any specific month or quarter.

Monday, May 19, 2003 4:07 PM by Paul Wilson

# re: WinForm UserControls in Internet Explorer

It appears the control is loading fine once you continue through the error.

I'm not the best DOCTYPE resource, but two things come to mind:

(1) Could the blank line above the DOCTYPE somehow be giving you grief? I know this needs to be first, but didn't think a blank line would be an issue.

(2) This makes more sense to my inexperienced eyes.... an incomplete DOCTYPE? ALA (http://www.alistapart.com/stories/doctype/) shows a URL inside the tag pointing to www.w3c.org. Now, I could believe running things locally would somehow direct your browser to look someplace different than through a web service.

If I read the error correctly, the problem isn't necessarily in the web service, but whatever is generating the DOCTYPE tag.

Friday, May 30, 2003 4:46 PM by Dave

# re: WinForm UserControls in Internet Explorer

>The error message mentions an IExplore.exe.config file, but searching on this reveals few references and no real help, and I fail to see how such a file on the server would accomplish anything since security in asp.net will stop my browser from being able to retrieve config files.

Well, I guess that is the problem then :) - Something that you use inside the assembly calls Ieexplorer.exe and as it run through the server it tries to find a ieexplorer.exe.config at the same origin it got the assembly from which is your server. Since your server is configured to disallow *.config to be send back, an error page is produced and send back instead. The doctype is unexpected as it should not be in an *.config file (or any XML...). Try the following: temporarily allow *.config in that sub dir and see how that goes. Alternatively you could allow *.config and disallow web.config.

Friday, May 30, 2003 4:53 PM by Marc Hoeppner

# re: WinForm UserControls in Internet Explorer

this might help:

http://urbanasylum.dynu.com/JustTheFacts/archives/000092.html

Friday, May 30, 2003 5:14 PM by chadb

# re: WinForm UserControls in Internet Explorer

Thanks to all the comments so far. Here's my analysis of it to this point. Please continue to give me any advice you can think of. Even if it turns out to not be the problem, it is still valuable in helping me sort through it!

Dave: The control loads fine, but the data that should show up in the control is never loaded since this is the call that the control makes back to the server. I removed the DocType tag as a test and it still gave the same error, so I think this is occurring due to the lack of the IExplore.exe.config file. Other than the mention of DocType for whatever reason, the rest of the error is definitely related to the calling of my webservice, not the loading of the page since that is already done.

Marc: Its not that I'm using something that calls IExplore.exe, its more the other way around: IExplore.exe is calling my web service. Now, what to do about it? First, I need to know what to put in this config file, and the only mentions of it on the web seem to indicate it should state which version of the framework is supported. Maybe this is a clue that somehow I need to include this in the control itself, but I don't know if that is possible. Maybe if I built it with .Net v1.0 instead of v1.1 it wouldn't be a problem, but I specifically chose v1.1 since I've read in multiple places that v1.1 solves some security issues with WinForms in the browser. Anyhow, maybe I should try it v1.0 when I get a chance to see if that helps. Finally, even if I knew what to put in this file, changing the default security to serve up config files would be totally unacceptable, even if that is the only solution, since that would reveal all of my private settings in web.config! Yikes.

ChadB: Wow -- that's a lot. Maybe as I dig through it I will find what I need. Can you by chance shed any more light on this stuff?

Friday, May 30, 2003 5:45 PM by Paul Wilson

# re: WinForm UserControls in Internet Explorer

chadb's article taught me some new stuff, I didn't know much about that IEExec stuff work, very helpfull!! - From seeing the win form I was under the impression that you were using the IE control or even MSHTML to display stuff in the win form, maybe that got me on the wrong track.

You don't actually have to have a ieexplorer.exe.config file, the problem seems to be that ASP.NET WP returns an unexpected page instead of either a) a real config file or b) a 404. Ieexec can handle a 404 which works just fine. But if you (ASP.NET...) return a real page, it thinks it gets the config file and tries to read it which in turn produces the exception.

To my knowledge you _have_ to use v1.1 or else the security stuff wouldn't work, so you are right to stick with v1.1.

And don't worry about security, you can still block your web.config and you can set it up just for that single directory to allow *.config files. This is from one of our projects (hope this gets through...):

<remove verb="*" path="*.config" />
<add verb="*" path="web.config" type="System.Web.HttpForbiddenHandler"/>

Machine.config disallows _all_ config files and I changed it so that just web.config files are forbidden.

So, if you simply add this to your web.config in that single sub dir, it wouldn't surprise me if it works!! - Anyway, it's worth a try :)

Friday, May 30, 2003 6:07 PM by Marc Hoeppner

# re: WinForm UserControls in Internet Explorer

Thanks Marc! That seems to have fixed it, although anyone that was previously testing it may possibly need to clear cached files and/or close your browser before the changes are picked up successfully. I also ended up creating a skeleton IExplore.exe.config file that now does get served to the browser.

Friday, May 30, 2003 6:51 PM by Paul Wilson

# re: WinForm UserControls in Internet Explorer

Yep. Since I never ache anything, this fixed it for me perfectly. Now, let me understand this... .NET mean DLL hell no longer exists? ROFL. Wow, this gets archived for me.

Friday, May 30, 2003 8:37 PM by Dave

# re: WinForm UserControls in Internet Explorer

I think in this case its more like security hell, and while its certainly a pain I think that's very much acceptable. Note that I would not have had this problem if I was using a more traditional GUI control, but mine is different since it calls back over the web-service. Overall, this was a much more pleasant experience than trying to get ActiveX controls working in the browser, so I would call it a huge improvement. Although there is that huge .NET redistributable that has to be installed on all the clients. :) By the way, the reason I'm using a web-service to retrieve the data is that the default sandbox security for WinForm controls in the browser does not allow real database connections! That stunned me the first time I saw it, but after thinking more I think its the proper security call.

Friday, May 30, 2003 8:55 PM by Paul Wilson

# "Texas Yankee"

"Texas Yankee"

Monday, June 02, 2003 4:03 PM by TrackBack

# re: Atlanta DotNetWeblogs Lunch

>So who else is in or near the Atlanta area?

Alpharetta here, and though I won't even begin to profess to be a .NET Expert I wouldn't mind getting together sometime.

Tuesday, June 03, 2003 9:21 AM by steven

# re: Meeting More Gurus at TechEd on Day 1

<Paul>MasterPages to my article -- really cool</Paul>

Really cool? How bout some elaboration on 'really cool'? Are you bieng humble or what?

If someone on the ASP.NET team told me they were referring ppl to an article I wrote (even tho I haven't written any yet<g>), I'd be pretty proud.

Brag on yourself.

Tuesday, June 03, 2003 12:16 PM by Christopher Frazier

# Datagrid Girl

Datagrid Girl

Tuesday, June 03, 2003 2:31 PM by TrackBack

# Yukon Beta Invites Out -- July+ for B1 : IDunno

Yukon Beta Invites Out -- July+ for B1 : IDunno

Tuesday, June 03, 2003 2:31 PM by TrackBack

# re: What Should be Said About Terrible Sessions?

Paul if you write your rant a little bit impersonal, it should be ok. After all a blog should be a space of freedom, with some limits of course ;-)

Tuesday, June 03, 2003 6:04 PM by Paschal

# re: What Should be Said About Terrible Sessions?

IMHO, I would write your opinions on the session with constructive criticism. Don't completely bash on the speaker, but give some ideas on what you were wanting out of the session and how you would have done things differently. Because a lot of the speakers re-use these presentations, it will be more helpful to do it this way.

Tuesday, June 03, 2003 6:05 PM by Jeff Julian

# re: What Should be Said About Terrible Sessions?

Agreed. Please post constructive criticism. Don't attack anyone, but explain why you didn't like it. It is important that people know what was good and what wasn't. It will affect speakers, topics and session choices in the future.

Tuesday, June 03, 2003 6:26 PM by Peter Provost

# re: What Should be Said About Terrible Sessions?

The people running TechEd communicated with me that they want us to be brutally honest. They view the feedback in these blogs as an important source for evaluating everything that goes on at TechEd.

I would be professional and honest in your crticism. Realize the speaker will probably read and benefit from your comments.

Tuesday, June 03, 2003 6:38 PM by Drew Robbins

# re: What Should be Said About Terrible Sessions?

for those of us jealous that we're not there, bad reviews will salve our wounds. :)

Tuesday, June 03, 2003 7:14 PM by sirshannon

# Paul Wilson's .NET Blog

Paul Wilson's .NET Blog

Tuesday, June 03, 2003 7:14 PM by TrackBack

# re: CommNet Problem at TechEd

But roaming profiles *don't* seem to be enabled. I have to create a VPN connection every time I go to use a machine.

Tuesday, June 03, 2003 7:31 PM by Adam Hill

# re: Critique of Disappointing Session at TechEd

Kind of reminds me of some of the programming books I've read.

Tuesday, June 03, 2003 7:47 PM by Ron Green

# re: CommNet Problem at TechEd

Romaing Profiles are stored on a central server ... that would be where the disk space is an issue - oen can disable the caching of roaming profiles on a local machine with a quick GPO change.

Tuesday, June 03, 2003 8:03 PM by Brian Desmond

# re: Critique of Disappointing Session at TechEd

I see that you've overcome your previous reticence to post a negative review of a session. ;-)

I agree that this is an honest review, something that can be refreshing in an industry surrounded by much hype.

Dontcha feel kinda bad for the guy, though? It's got to take a lot to put yourself on the line, and then get shot down like that.

Tuesday, June 03, 2003 8:15 PM by Jerry Dennany

# re: Critique of Disappointing Session at TechEd

The topic sounds a little academic or droll, but I read back over the description and could kind of connect the dots between what they said it would be and what it sounds like you got.

Does that make it useful or compelling--well you were there not me, so I'll defer.

But I don't think this was too much of a hatchet job, it clearly wasn't personal. Ideally the presenter can take it as one piece of constructive criticism, compare/contrast it with other evals and be better off and more self-knowing for it. If you find yourself in the FoxPro tent at the next TechEd then we'll both know that I was wrong there. :)

Tuesday, June 03, 2003 8:27 PM by Grant Carpenter

# re: What Should be Said About Terrible Sessions?

I say go for it.
The beauty of this medium is that it gives you a voice where previously you had none against such things as conference sessions.

Use it

Tuesday, June 03, 2003 8:40 PM by Damian

# re: Critique of Disappointing Session at TechEd

Well, I can say that I agree and disagree at the same time.

The material presented was most definitely very theoretical, and the attempt to sum it all up (presto!) with an implemention thrown together with scotch tape and glue during the last 15-20 minutes of the presentation was, in my opinion, a bad choice and very ineffective. ORM and modeling are very complex topics, and a presenter's objective must be either to teach the attendees about the theory in enough detail for a complete picture to be formed in their minds, or he/she should skip the in-depth soup-to-nuts speech in favor of a more brief introduction number of learn-by-implementation demonstrations. I prefer the theoretical, but I agree it seemed like a botch job as soon as the quasi-implementation demo was thrown in at the end. Additionally, if you had read the presentation description, it most definitely sounds like an implementation class to me (the ASP.NET in the title gives it away).

That said, I think his knowledge of the topic was pretty solid; not to mention that the class was a 400 level. He also mentioned right at the outset that the talk would be mostly theoretical and very advanced. I found it to be a nice break from the average how-to sessions that are often difficult to spot just by title alone... theory is often thrown out the window in favor of code snippets. Obviously, understanding core competencies and concepts are much more important than syntactical details for certain topics; I would argue that ORM is one of those topics.

Lastly, I couldn't disagree more with his suggestion of simply wrapping a DataSet or even inheriting from one for the sake of strong typing (UGH!!!!!!). Using his implementation for the mapping, I believe you need to factor a given business entity into an interface defining business methods and properties, and a class that implements those methods (somewhat obvious I suppose, but he didn't even mention it???). Next, the implementing class should use a PersistenceFactory of some sort that knows how to transform a DataSet into an entity and vice versa; really, the use of a DataSet is irrelevant and should be completely hidden from the entity implementation class. The factory itself should determine the best mechanism for persistence.

Just a few thoughts...

Ciao,
<joe/>

Tuesday, June 03, 2003 9:16 PM by Joe Duffy

# re: CommNet Problem at TechEd

Hi I am working support support for CommNet and we did see this problem. As pointed out by others this was not a Romaing Profiles issue we are pusshing out all type of applications wallpaper etc. we now a running scripts that keep deletting the files off the boxes. Sorry for the short entry and bad spelling I am using one of the Hitachi Sprint phones to enter this.

Tuesday, June 03, 2003 11:12 PM by Woody Pewitt

# re: Critique of Disappointing Session at TechEd

I wasn't there, so I don't know how bad it was, but I do know that ORM is an excellent technique to talk about both objects and relations in an abstract way that both database developers and code developers can understand it and talk about the same thing.

The best possible way to generate an O/R model framework is to pick up an ORM model and generate both tables and constraints and code from that.

O/R mapping is done in a variety of ways, some use datasets, some use own classes, some use a cache, others don't. One thing they have in common: they all share the same idea about 'entity', how to model these and thus how a table relates to a class. ORM is then an excellent choice, but perhaps the speaker didn't achieve to make that clear enough :)

Wednesday, June 04, 2003 2:34 AM by Frans Bouma

# re: Critique of Disappointing Session at TechEd

Well, Frans - from what I basically seem to see here (I was not there), the problem is not that ORM may be a bad choice, but that the session was not supposed to be about ORM. It was supposed t obe about O/R mappings, and I would expect such a session to give an overview of the problem area, of possible solutions and stuff like this, instead of sticking to discussing ORM. I mean, O/R mappers are one of the most complicated thing in the industry (just look at the code you pzublicshed as a samplke for llbgen 2 - I would consider this to be a very badf implementation of an O/R mapper, very bad), and most developers need ah and to even understand the topic - so going off into ORM only, instead of the problemsatic areas you may encounter was not doing the session a facvour as it looks like.

Wednesday, June 04, 2003 6:05 AM by Thomas Tomiczek

# re: SQL Server Yukon and .NET Programming Features

I dont want to nag too much, but most features look useless to me.

I mean, server side cursors / paging - thats all stuff you better dont use anway due to the impact on the server. SP's are a portability issue :-(

The object stuff could be interesting, if it is exposed through standard ADO - otherwise I will always prefer a O/R mapper. THough this mapper can become much more powerfull in regards to YUKON.

Still, I dont think they can erally do it - no. Unless the objects inthe database are very "ui centered". Support databinding and all this. No, I dont think they can do it good enough. And an objectspaces like solution would be a solution on top of YUKON :-(

Wednesday, June 04, 2003 6:15 AM by Thomas Tomiczek

# re: SQL Server Yukon and .NET Programming Features

SQL Server has supported recursive stored procedures ever since 7.0. Perhaps I'm missing a nuance of the new feature.

Wednesday, June 04, 2003 10:44 AM by Chris B. Behrens

# re: SQL Server Yukon and .NET Programming Features

Hey Chris:

Here's a link on "hierarchical query" support in Oracle:
http://otn.oracle.com/products/oracle9i/daily/oct04.html

Maybe calling it recursive isn't the best choice of words, but its a common description of what this achieves. I actually read a blog entry the other day from someone that this was the only reason he still used Oracle at times.

Wednesday, June 04, 2003 12:36 PM by Paul Wilson

# re: CommNet Problem at TechEd

I heard they said they wer going to take down the Wierless network becuse they were gettign hacked/flooded and it was causing isues for desktops. is this true? Next year a provide that's worth anything like CISCO should host the Wierless network and set it up that you have to be enables so if you hack they knwo who you are right away.

Wednesday, June 04, 2003 7:48 PM by disapointed in wierless

# re: The Absolute Best Session on ASP.NET

Care to give us some examples of what made it so great or what types of things they covered?

Wednesday, June 04, 2003 7:54 PM by Alex Lowe

# re: The Absolute Best Session on ASP.NET

Ack! I was one of the poor fools that got to that session late. By the time I arrived the line of people was OUTSIDE the door - this session was JAM Packed - not even a free spot to sit on the floor.

Wednesday, June 04, 2003 7:59 PM by Stephen Swienton

# re: The Absolute Best Session on ASP.NET

Hey Paul, Yes, can you speak a little bit more about this session? It sound very attractive and interesting! :D

Thursday, June 05, 2003 10:58 AM by Colt

# re: CommNet Problem at TechEd

I don't know any details (honestly) so that may or may not be the case. I do know that things were good Monday, bad Tuesday, and terrible Wednesday. Things got so slow, when you could even get a website to be found at all, that my SprintPCS Handspring Treo was way better. Today things seem to be much better again, although logging in still seems far too slow to me.

Thursday, June 05, 2003 1:14 PM by Paul Wilson

# Andres Aguiar's Weblog

Andres Aguiar's Weblog

Thursday, June 05, 2003 2:26 PM by TrackBack

# re: More Fabulous Sessions and TechEd Updates

Thanks for the extra info on why the sessions were so great, you rock!

I have thought about writing a book or beginning to present based on an application I've worked on for the last 18 months - you've just confirmed my suspicion that such a premise can "work".

Thursday, June 05, 2003 4:03 PM by Alex Lowe

# re: More Fabulous Sessions and TechEd Updates

Thanks Paul and all the other Technet bloggers for this past week. For those of us who couldn't make it, your photos and blogs, both technical and social have made it TechEd week for us too.

Can you please elaborate on remoting for local communication? If say we have the web app and business tier on the same machine, should we use remoting for web app to business tier calls instead of just setting a reference and using standard object creation?

Saturday, June 07, 2003 6:19 AM by Victor Lindesay

# re: More Fabulous Sessions and TechEd Updates

Hi Victor:

Remoting for local machine communication would only be necessary for things in different processes (or appdomains also), not for normal communication across different logical layers on the same machine. Keep in mind that the distinction between layers and tiers is that layers are logical separations through code separation, whereas tiers are actual physical boundaries, like processes or machines.

Thanks, Paul

Saturday, June 07, 2003 9:49 AM by Paul Wilson

# re: More Fabulous Sessions and TechEd Updates

Here's Clemen's comments on Remoting:

http://radio.weblogs.com/0108971/2003/06/07.html#a189

Saturday, June 07, 2003 10:04 AM by PaulWilson

# re: More Fabulous Sessions and TechEd Updates

Thanks, I see now. And for the link to Clemen.

Saturday, June 07, 2003 2:30 PM by Victor Lindesay

# re: Patterns and Practices to Finish my TechEd Trip

I agree completely about WinGear.NET. When I asked them about the poor performance, they claimed they requested "a bigger pipe" than the Dallas Convention Center could provide. Wrong answer, idiots. I was here in 2000 for MEC and in 1999 for TechEd, and CommNet was great at both. Although MEC was a smaller conference, TechEd 1999 was very comparable in size to TechEd 2003. There were fewer CommNet stations in 1999, but that doesn't explain why CommNet 2003 was slow all the time, even at 9PM on Sunday and 7AM/7PM on weekdays, when relatively few users were on it. Once, I printed a single page from the middle of a table which had a printer at each end. Not knowing which end it went to, I walked around the table repeatedly until the page came out. I am 5'6" tall, so my short legs don't walk very fast, but I managed to log off and walk 5 full laps around the table before my page was printed, and there were no other pages coming off either printer at the time.

Saturday, June 07, 2003 3:19 PM by Ronny Ong

# re: Critique of Disappointing Session at TechEd

I too was really disappointed with this session, leaving early rather than sit through the entire thing. 45 minutes of it was more than enough. I understood the problem, but wanted a solution - oh well . . .

Wednesday, June 11, 2003 6:41 PM by Jason Bunting

# Datagrid Girl

Datagrid Girl

Friday, June 13, 2003 9:22 PM by TrackBack

# Jerry Dennany's Occasional Clue

Jerry Dennany's Occasional Clue

Friday, June 13, 2003 9:22 PM by TrackBack

# re: Pocket PC Development with VS.NET 2003

Paul,

SqlCE is really pretty amazing, all things considered. I have blogged about it myself, and currently have a 30+ Meg database running on my pocket PC (with Paint prescriptions of all things...).

Have fun!

Saturday, June 21, 2003 12:17 PM by Douglas Reilly

# re: Pocket PC Development with VS.NET 2003

Paul,

Did you get this by having an MSDN Subscription? A friend of mine said he spoke with Microsoft and they said that MSDN subscribers don't count (which contradicts the webpage on MSDN).

Other than that, have fun!

Monday, June 23, 2003 9:17 PM by Tony

# re: Pocket PC Development with VS.NET 2003

I got mine from having a corporate Universal MSDN subscription -- just like it says. All of my colleagues have also gotten theirs too. I think it has to be Universal, not something lessor, and it must be corporate or actual purchase, not a gift subscription.

Tuesday, June 24, 2003 6:44 AM by Paul Wilson

# re: Pocket PC Development with VS.NET 2003

Good, I'm covered then :)

Thanks

Tuesday, June 24, 2003 7:37 AM by Tony

# re: ASP.NET Developer's Cookbook Stolen

Ouch...

Oh well, it was probably some moron who saw "cookbook" and assumed that ASP.NET is some sort of foreign food :) Or at least that is what happens in my neighborhood...

Wednesday, June 25, 2003 5:42 PM by Addy Santo

# re: ASP.NET Developer's Cookbook Stolen

I love this book. Nice, simple, concise. I've been thinking about writing up something about OOD/Design Patterns in C# with ASP.NET and include some 'best practices' regarding effectively designing ASP.NET applications with patterns in mind. Know of any resources on this topic?

Wednesday, June 25, 2003 6:28 PM by Phil

# re: ASP.NET Developer's Cookbook Stolen

Well, you obviously don't need the book. ;-)

Thursday, June 26, 2003 9:22 AM by Wallym

# re: ASP.NET Developer's Cookbook Stolen

Maybe it's in USPS heaven, along with my PocketPC?

Thursday, June 26, 2003 10:28 PM by jerry Dennany

# Datagrid Girl

Datagrid Girl

Friday, June 27, 2003 9:29 AM by TrackBack

# re: IIS Applications, Virtual Directories, and ASP.NET

Thanks for the articles Paul - very timely and informative. Will certainly go through them throughly.

Friday, June 27, 2003 2:17 PM by SBC

# re: QuickFix for Bug in ASP.NET Version 1.1

I wish I would have known about this bug before spending hours installing and reinstalling .Net. I've read your article and specifically the C# code, but where I am I supposed to use/place this code? I'm very new to .NET I appreciate your help!!!

Wednesday, July 02, 2003 3:57 PM by Robert

# re: QuickFix for Bug in ASP.NET Version 1.1

In your page class, or even better put it in a class that derives from Page and have all of your pages inherit from that so you don't have to repeat the code all the time.

Sunday, July 06, 2003 11:26 AM by Paul Wilson

# Yukon Beta Invites Out -- July for B1

Sunday, August 03, 2003 10:14 PM by TrackBack

# re: Paul Wilson starts Blogging

That Page Template Generator rocks my world!!!!

Thursday, August 07, 2003 5:17 PM by rob

# re: Finishing at Old Job -- Starting New Job Next

Congrats all around.
-Scott

Friday, August 08, 2003 2:01 PM by Scott Watermasysk

# re: Finishing at Old Job -- Starting New Job Next

Nice to see some dev'ers are able to find employment without having to wait months between gigs. Paul, with as much as you know and with the reputation you have, why not try out the IC thing or start your own thing?

Friday, August 08, 2003 2:29 PM by Jason Mauss

# re: Finishing at Old Job -- Starting New Job Next

Good luck Paul in your new position. All the best.

Friday, August 08, 2003 2:49 PM by SBC

# Congrats!

Hey, man, it was really good working with ya, and I look forward to hearing more about what kinda tech stuff you get to work with.

Keep us posted on how the new gig is going!

Friday, August 08, 2003 7:49 PM by Jerry Dennany

# re: Finishing at Old Job -- Starting New Job Next

Hey Paul, what a wonderful life =)
Best Wishes.

Friday, August 08, 2003 9:24 PM by Colt Kwong

# re: Finishing at Old Job -- Starting New Job Next

Good luck Paul!

Friday, August 08, 2003 9:53 PM by Andres Aguiar

# re: ValidateRequest in ASP.NET v1.1

It's a pain to type this? How lazy can you be, one line to change the default for an application in the web.config if you really need to.

system.web
pages validateRequest="false" /
/system.web

Friday, August 15, 2003 5:36 PM by Farlox

# re: Coding Standard for .NET and VB6 Teams

I posted on this a little while back. I also have links to some other coding standards you might care to look at.
http://dotnetjunkies.com/weblog/darrell.norton/posts/550.aspx

Monday, August 18, 2003 9:20 AM by Darrell

# re: Coding Standard for .NET and VB6 Teams

Now that everything is an object, using hungarian notation is just too complicated.

Consider nCount - is that an Integer, an Int32, a class derived from integer etc.

Also it is instructive to run FxCop against some of the framework dlls - Microsoft don't always practice what they preach ;-)

Monday, August 18, 2003 9:21 AM by Duncan

# re: Coding Standard for .NET and VB6 Teams

Our team follows the Microsoft guidelines for all public elements (including method parameters), while using hungarian inside.

Roland

P.S. One reason why I use hungarian notation:
http://weblogs.asp.net/rweigelt/posts/21741.aspx

Monday, August 18, 2003 9:23 AM by Roland Weigelt

# re: Coding Standard for .NET and VB6 Teams

Earlier this year we went through the same process. We had a good number of VB6 developers and wanted to put together a standards doc for .NET development to ensure everyone was following the same (hopefully correct) practices. We ended up following most of the Microsoft recommendations. The reason for this was to ensure that our API's were consistent with all the other API's developers would work with in the .NET Framework. Introducing standards that conflicted with what developers would see when working with the framework would have only caused confusion.

While writing the doc I tried to get a lot of feedback from others in the group to make sure it was something they would and could follow. In the end things ended up pretty good. A couple people needed a little guidance during the transition (old habits are hard to break) but I think everyone is pretty glad we broke the old habits early in the process.

Best of luck!
- Steve

Monday, August 18, 2003 9:29 AM by Steve

# re: Coding Standard for .NET and VB6 Teams

I made the transition a while ago from Hungarian to MS's recommended standards for .NET. No problems whatsoever. I advise you and your team to "just do so". My team is currently making the transition as well (from my companies own standards). From what I can observe here sitting behind my desk… they all seem to be smiling and having fun with .NET:

m_me vs. _me

Isn’t all that of a big change, again… just make the transition. The people on “your bus” experience this as another challenge in order to make your company successful in the .NET world.

Monday, August 18, 2003 9:32 AM by Paul Gielens

# re: Coding Standard for .NET and VB6 Teams

An interesting comment that you make is that "I don't want to disrupt things too much". I understand that as the 'new kid on the block', that might be a problem, but to be trite:

a. That's what they hired you for. They needed a senior architect to implement standards.
b. The constant is change. If you are in tech, and you can't change, you might have chosen the wrong career.

Ok, that's the opinion part. Now for some other opinions:

I like this opinion, though there's no 'meat' here:
http://www.yafla.com/rants/quality/


The C++ FAQ has a decent take on setting standards:
http://www.fmi.uni-konstanz.de/~kuehl/c++-faq/coding-standards.html#faq-27.1


One last thing - when setting these standards, ask yourself not only what do they do for you today, but how do they allow room for growth?

Examples:
How will use hungarian effect future use of Generics?
Does your coding standard have room to allow for partial classes, etc?
Does your coding standard tie you to Win32 centric ideas? Do they tie you into a certain 'way of thinking', that may restrict the developer from seeing a solution another way? (OK, languages tend to do this more than coding standards, but I think that there is a point to be made here.)

Also, instead of enforcing silly things like 'number of spaces per tab', is a reformatting tool an option?

Monday, August 18, 2003 12:51 PM by Jerry Dennany

# re: Coding Standard for .NET and VB6 Teams

Don't be too harsh on standard issue. Standard is one, Productivity is the other. Those two things are not in linear relationship.

To me, All public type names, public member (field, property, method) names must go through reasonable reviews. Comments of them are mendatory required to be good enough by the time each associated item is "drafted". They are refined when the related item is refined. Unit test app is also generally mendatory to be completed by the time the type is completed. Weekly status meething is a good chance to go through weekly review on those issues (Hey, Agile).

As to private members and where the left bracket should go, I don't think the rule should be enforced, though general recommendation is good. As long as they are consistant, it is OK.

Monday, August 18, 2003 4:16 PM by Yang Cao

# re: ValidateRequest in ASP.NET v1.1

Whine and complain, whine and complain. At least you have jobs/careers. Some people aren't so fortunate. Nobody wants to work anymore...just sit around and have microsoft do all your automation. Get yourself a clue. Be proactive.

Tuesday, August 19, 2003 2:02 PM by TheTodd

# re: Coding Standard for .NET and VB6 Teams

Dang it! You got me on a rant against Hungarian notation. It was too long for a comment, so I posted it to my blog (linked to my name above). Good luck with the job!

Wednesday, August 20, 2003 1:36 AM by Richard Tallent

# Update on my Coding Standard for .NET

Thursday, August 21, 2003 7:52 PM by TrackBack

# re: Update on my Coding Standard for .NET

I realize that this is a public forum, so without being overly specific, what kind of resistance did you expect to encounter, what did you actually encounter, and how did you deal with it?

Thursday, August 21, 2003 10:06 PM by Jerry Dennany

# re: Update on my Coding Standard for .NET

Two main areas of resistance are I think likely in any VB6 group converting to the new standards. First, most people are used to Hungarian naming conventions, and its really hard to convince people you won't miss it. I know I had this same concern when I made the switch, which I shared with my team. Over time this goes away as you realize you are now coding the same way everything else in the framework already is, but it can be a slow painful process. I do think FxCop makes that easier though, which I didn't have (or know about) when I switched.

The other possible point of resistance with my standard is that I believe projects should be able to be built by automated processes, at least at some point in the future when the team and management is ready for this. That seems obvious, but this is actually not the way VS.NET work with VB.NET projects. For instance, VS.NET stores Option Explicit, Option Strict and common Imports Namespaces in the project file instead of the code files. It also has a root namespace that is stored in the project file, which either means VB.NET code usually has no namespace in the code file, or worse the namespace there is not really going to be the entire namespace in the end since it will be appended to the root namespace in the project file! So to enable automated builds, you have to remove the Imports and root namespace from the project settings, and then manually add these to each code file, along with the Options. Yes, I could create enterprise templates, but that's a lot of work, and it just reinforces not learning what's really going on behind the scenes. I actually don't mind VB.NET, even though I do my own stuff in C# mostly, but I do think it sometimes simplifies things too much for a real software development shop. For this, I simply tell them why these things are done, and I think it became a non-issue, especially since there were far more issues with the naming conventions.

I briefly described the feelings of part of the team in the original post, and that's about all I can say at this time. Not that I'm really hiding much either, but you have to remember this is a new group of people to me, and me to them, so I simply don't know yet how everything is really being perceived until we get to know each other better. I've got some people with many years at PRG on this team that may very well, and rightly so, wonder who I am and why I'm here, instead of promoting them. Maybe that's not the case, but I think it would be a totally fair reaction to have, and only time with each other can change that, if that's even the case at all. So maybe I answered most of your questions, and maybe this will help someone else considering this route for themselves.

Friday, August 22, 2003 10:09 PM by Paul Wilson

# re: Update on my Coding Standard for .NET

Interesting response - again, I wasn't trying to put you 'on the spot', but I was interested in the insights that you could offer. Thanks much!

Sunday, August 24, 2003 8:32 PM by Jerry Dennany

# re: WinForm UserControls in Internet Explorer

I am having trouble getting my WinForm to show up on non-localhost machines.

I get the control outline and then the control icon in the top left corner.

Any ideas - it works great on my localhost machine and I can see your Windows Form.

Thanks

Monday, August 25, 2003 7:08 PM by Darcy Vaughan

# re: WinForm UserControls in Internet Explorer

Hi Darcy:

You need to be have .NET v1.1 on client for security to be correct by default. I'm not sure, but it may be necessary to compile your WinForm control dll against v1.1 and have your ASP.NET site running v1.1 also.

The control dll needs to be on the server in a folder that's accessible (not the bin). You need to make sure you are not referencing any system colors, but you've probably already done that if it works locally. Many things, like database access and file IO are still not allowed by default, but you should get an error in most cases. Some things also require having an IExplore.exe.config, like calling back with a webservice, which is a pain to setup and was the butt of my original problem that was posted here.

I hope one of these hints helps, if not give me some more details about what yours is doing and maybe we can find something else.

Later, Paul Wilson

Monday, August 25, 2003 9:04 PM by Paul Wilson

# purpose rather than their implementation

"purpose rather than their implementation"
A little quote from Richard Talent's "rant"

I work in a small team, when I said yesterday that Hungarian notation was not the prefered naming style in .Net, I was asked what I meant by Hungarian Notation...

It is hard to enforce good hungarian, and FXCop makes it quite easy to find and fix all kind of things.

Wednesday, August 27, 2003 8:40 AM by Andrew

# re: ActiveReports, Crystal, or Other for ASP.NET

I absolutely hate the process of writing Crystal Reports but they always look so good when finished and the users/management have no idea how much stress went into them, so they all love Crystal.
I'm praying for a quick release of the SQL Server reporting tools.

Wednesday, September 03, 2003 8:47 AM by Shannon J Hager

# re: ActiveReports, Crystal, or Other for ASP.NET

You should check out Report SharpShooter: http://www.9rays.net/cgi-bin/components.cgi?act=1&cid=93

Wednesday, September 03, 2003 12:08 PM by David Stone

# re: ActiveReports, Crystal, or Other for ASP.NET

Crystal Reports:
Pros:
Reliable
Plenty of Features
Cons:
They will rape you for every penny your organization has and then they'll still demand you buy more licenses.

Active Reports:
Pros:
Dirt Cheap.
Cons:
Horrificly buggy.
Terrible API.
Missing a lot of basic features.
Very very poor GUI tools.

I would kill for a decent alternative to either of them.

Summary:

You're damned if you do, damned if you don't. Screwed anyway. Why not write your reports in Java using XML and XSL:FO? I would if my employer would let me....

Wednesday, September 03, 2003 2:25 PM by Bryan Murphy

# re: ActiveReports, Crystal, or Other for ASP.NET

Wednesday, September 03, 2003 8:39 PM by Kent Sharkey

# re: ActiveReports, Crystal, or Other for ASP.NET

Stay far, far away from using the version of Crystal Reports that ships with Visual Studio .NET. It is very buggy and unreliable. If you are seriously interested in going with Crystal Reports, I definitely recommend looking into version 9.0 which is marginally better. Also, like Bryan Murphy pointed out, be prepared to fork over a fortune to pay for licenses with Crystal.

I have had good success with Active Reports, but it is really the lesser of two evils.

Also avoid the Component One reporting tool at all costs if performance means anything to you (based on 1.0).

Wednesday, September 03, 2003 11:11 PM by Anonymous (name withheld to prevent the wrath of C

# DLL Search Order Changed in Latest Windows

Thursday, September 04, 2003 1:36 PM by TrackBack

# re: ActiveReports, Crystal, or Other for ASP.NET

Hi Paul,

I second Kent's suggestion, check out the beta of the MS reporting services included in SQL Server. The UI is integrated in VS.NET and it is quite a decent tool!!

Best regards,

Marc

Sunday, September 07, 2003 3:53 AM by Marc Hoeppner

# re: One Month at New Job with PRG-Schultz

Thank you for making the decision to go with ActiveReports. Please let us know if there is anything we can do to help you make full use of the product.

Sunday, September 14, 2003 7:39 PM by Issam Elbaytam [DD]

# re: NUnit, Log4Net, and O/R Mappers

There is an open source O/R persistence layer for .NET at <a href="http://jcframework.sourceforge.net">the JC Persistence Framework</a> project on Sourceforge.

It uses XML to store the mappings, and supports MSSQL, Access, OLEDB and MySQL.

Tuesday, September 16, 2003 3:12 AM by Richard Banks

# re: ActiveReports, Crystal, or Other for ASP.NET

Hi Marc,

You mean MS Reporting Services in Yukon, or it is available for SQL 2K too?

Peter

Friday, September 19, 2003 9:07 AM by Peter Holpar

# re: Are Many ThirdParty WebControls to Heavy?

I just don't use them (well, mostly) for the reasons you've mentioned. If I need something I'll role my own or go find a sample to work off of.

I have used Peter's Date Package (www.peterblum.com), Cyberakt RichContentRotator, and Telerik's Rich Text Editor.

--Brian

Thursday, September 25, 2003 10:41 PM by Brian Desmond

# re: Are Many ThirdParty WebControls to Heavy?

I'm with you, Paul. Many third party controls, and arguably some of the built-in's for ASP.NET, are much too heavy. At Match.com we ended up rewriting alot of controls for that very same reason.

-Jason

Friday, September 26, 2003 9:07 AM by Jason Alexander

# AppSettings - External Config File

Monday, September 29, 2003 3:56 PM by TrackBack

# re: AppSettings can Reference an External Config File

Very nice...

Monday, September 29, 2003 4:26 PM by Greg Duncan

# re: Atlanta .NET User Group and DataGrid Girl

Thanks Paul, it was good to see you again!

Marcie

Tuesday, September 30, 2003 10:33 AM by Marcie Robillard

# Re: Atlanta .NET User Group and DataGrid Girl

Tuesday, September 30, 2003 11:17 AM by TrackBack

# re: Atlanta .NET User Group and DataGrid Girl

Yup, I tried to go, but the beach was calling instead. Glad to hear that it was a good session...

Tuesday, September 30, 2003 11:45 AM by Jerry Dennany

# re: Atlanta .NET User Group and DataGrid Girl

"I was also pleasantly surprised at the number of people that knew who I was and wanted to talk to me"

Of course we know who you are! You have a MASSIVE amount of content on your site. Your site is a great resource for anyone that has a quick-cycle project that they need to get out the door without reading an encyclopedia. You've helped me out of a bind or two with your articles and research efforts.

Keep up the good work. Oh yeah, thanks for the code review. I know you're busy and it was great to read your comments. I wish more people were as honestly critical as you, we'd have much better software out there if they were.

Tuesday, September 30, 2003 12:54 PM by Michael Earls

# Include extern

Wednesday, October 01, 2003 4:58 PM by TrackBack

# re: Atlanta .NET User Group and DataGrid Girl

Paul, thanks for coming out! I'm glad you enjoyed the talk on regular expressions.

By the way, the regular expression tool test tool I demonstrated is live online at http://www.accelebrate.com/present (and incorporates the feedback I received during the talk). :-)

Thursday, October 02, 2003 8:36 PM by Steve Heckler

# re: Sorting and Paging Recordsets in SQL Server

Just taking a quick look, you could change the "SELECT Count(*)" to "SELECT Count(@PrimaryKey)" and that should give you a speed boost. Reducing the number of columns in the select statement always speeds things up, even for aggregate operations like Count. Very interesting though; I will have to see how well it works for complex queries.

Friday, October 10, 2003 10:15 AM by Darrell

# re: ActiveReports, Crystal, or Other for ASP.NET

Take a look at WordML. Server-side generation of Word documents is now very well support - even without having Word installed on that machine!

Wednesday, October 15, 2003 3:55 PM by Patrick Tisseghem

# re: ASP.NET v2.0 (Whidbey) Articles on ASPNetPro.com

Great article Paul, thanks.

Friday, October 24, 2003 10:43 AM by Scott Galloway

# re: ASP.NET v2.0 (Whidbey) Articles on ASPNetPro.com

They're giving a copy of this issue out at the PDC, too. Pretty good articles, all of them.11

Monday, October 27, 2003 8:46 AM by Jerry Dennany

# re: Sorting and Paging Recordsets in SQL Server

Very interesting! Right now I'm using a solution based on creating a temporary table in the stored procedure for selecting rows from a table containing over a million rows. I will test to implement this solution and see if it boosts performance, which would be very welcome :)

In my project I will have to make an inner join to retrieve User names from another table, but since I only have to do this on the outermost SELECT-statement (after TableName), and I have a good indexed structure, that shouldn't have a big impact on performance.

Any thoughts?

Monday, October 27, 2003 11:14 AM by Torbjörn Axelsson

# re: ASP.NET v2.0: Code-Beside Replaces Code-Behind

Paul,
It is good and to the point. I do not like posts about what i feel or heard in PDC. Rather give me code. Afterall, I am developer and not screen writer. I am looking forward your articles.

Where do you get ASP.NET bits?

thanks, Maxim

Monday, October 27, 2003 12:45 PM by Maxim V. Karpov

# re: ASP.NET v2.0: Code-Beside Replaces Code-Behind

Well, that's the gotcha that remains, isn't it? Officially, you have to be at the PDC to get the bits. The first public beta is not scheduled until Spring 2004. That said, my guess is that someone looking hard enough will be able to find the bits in the next couple of weeks -- but not from me. :)

Monday, October 27, 2003 1:00 PM by Paul Wilson

# re: VB.NET v2.0: Operators, Using, Unsigned Types, and More

And for the record, IsFalse(obj) and IsTrue(obj) are both new operators for Whidbey.

Monday, October 27, 2003 9:35 PM by Brian Desmond

# re: VB.NET v2.0: Generics are Supported in VB Also

Noooooo! They also used '()' for this one!!! Now 'foo()' can mean:
- array index
- generic type specification
- method call

Why oh why didn't they simply use a different set of brackets... This is cludgy... Ah well...

Tuesday, October 28, 2003 3:36 AM by Frans Bouma

# re: VB.NET v2.0: Generics are Supported in VB Also

Or drop the parenthesis altogether. I know it's code, not English, but putting a prepositional phrase in a parenthetical phrase just looks awkward.

Tuesday, October 28, 2003 12:15 PM by Richard Tallent

# re: VB.NET v2.0: Generics are Supported in VB Also

FWIW, I like the syntax. It looks like VB.

After they did array initializers with curly braces and used C syntax for bit shifting operators, I was getting worried.

Tuesday, October 28, 2003 10:47 PM by Dave Rothgery

# re: .NET v2.0: FTP Classes are now Provided

What other new classes are there? I heard there is going to be a new toolbar for win forms that has more functionality? Have you had a change to look at that? I see a lot of information about new stuff for asp.net, but what about new windows controls?

thanks for the great information!
Paul

Tuesday, October 28, 2003 11:13 PM by Paul

# re: .NET v2.0: Serial Port Communications Finally Arrives

Does it support USB as well or just plain ol' RS-232?

Wednesday, October 29, 2003 3:07 AM by Richard Tallent

# re: VB.NET v2.0: Property Gets and Sets with Different Accessibility

Why should anything be in one language and not the other? Personally I would prefer if there was no functional difference between the languages.

Wednesday, October 29, 2003 4:24 AM by Duncan

# re: VB.NET v2.0: Property Gets and Sets with Different Accessibility

" I'm starting to wonder what's not in VB?"
A decent syntax. Example: '()'. No further questions, Your Honour :)

Wednesday, October 29, 2003 5:26 AM by Frans Bouma

# re: .NET v2.0: Serial Port Communications Finally Arrives

See the following post for USB information:
http://groups.google.com/groups?selm=eFyFozm1CHA.2188%40TK2MSFTNGP10

Wednesday, October 29, 2003 8:15 AM by Paul Wilson

# re: .NET v2.0: FTP Classes are now Provided

I haven't really spent any time looking at new Windows features, although I'm sure there are many. I noticed several new namespaces under System.Windows for instance, but I don't have my Whidbey machine with me right now to look them up.

Wednesday, October 29, 2003 8:18 AM by Paul Wilson

# re: VB.NET v2.0: Property Gets and Sets with Different Accessibility

Well, so far it seems that in a lot of the demos, VB seems to be getting a lot more design time support in the RAD environment - I don't know if C# is getting these design features and no one is mentioning them, or what....

Wednesday, October 29, 2003 9:58 AM by Jerry Dennany

# re: ADO.NET v2.0: ObjectSpaces Delivers an O/R Mapper

::ObjectSpaces is one of the most exciting
::parts of .NET v2.0 to me.

Really? Sorry to hear, because I am bored to death by an O/R mapper that is far behind the industry average for O/R Mappers :-(

Nice that MS finally gets a grip on OO, too, but sad that ObjectSpaces just lacks everything beesides basic mapping.

Wednesday, October 29, 2003 12:01 PM by Thomas Tomiczek

# re: ADO.NET v2.0: ObjectSpaces Delivers an O/R Mapper

Hey Thomas:

Here's your chance to now publicly state what exactly is missing. I'm not the O/R mapping expert, so I'm honestly not real sure. I like your EntityBroker, but I also like ObjectSpaces, and it will automatically be there on my servers when .NET v2.0 is installed, which is a huge plus! So, what exactly are we missing in ObjectSpaces, and is some of that expected in the Beta possibly?

Wednesday, October 29, 2003 12:10 PM by Paul Wilson

# re: ADO.NET v2.0: ObjectSpaces Delivers an O/R Mapper

I actually write a whitepaper about his right now.

Missing mostly:
* Databinding (n, the ObjectDataSource does NOT cut it - details following in the white paper). This CAN possibly be handled, though.
* Caching, especally in a cross transaction system. No plans from MS to get more intelligent there.
* "Enterprise readiness". Read this, for example, as "Remoting integration". Now, this may not be releavnt for ASP.NET (it is IMHO - we write a CMS where the client uses Winforms and connects back to the server for editing). And some people may say you can remote your objects. Yes, but this SUCKS. And I mean this as verbatim. Handlign events is bad, as is performance. BOTH are things we currently handle with the EntityBroker.
* A service object model, though this is related to remoting.
* Multiple databases. Last time I looked at it, ObjectSpaces was SQL Server only. Maybe I missed something here, though.
* Extensibility. THe ability to dynamically extend the object schema for non-trivial applications. We work on this, by allowing subclasses (inherited from the busines object) to replace them (we call this substitution). This allows some third party using your object model to extend it.
* Extensibility, as in "supporting type inheritance, driven by the database" AND "extend this dyhanically when the ObjectSpace is created". SOme people with the EntityBroker still ask us why we keep the attributes around and dont use a XML file like OS. Simple. We compile the schema from the attribute when the server is created. Gives us flexibility. In general, ObjectSpaces seems not to be ready for modular applications.
* Security Model. ANother issue we handle right now - re-integrating property and method seucrity into the system.
* COM+ integration. IF you need COM+,, wouldn't it be nice if it would just integrate.
* Database Schema Creation. So you deliver a progrm built with ObjectSpaces. Why the heck do you still ahve to deliver the database creation file? e handle this at the moment by adding the database schema information (like indicces) into the compiled dll's and provide a tool that then generates the database. Provider independant (Access, SQL Server - as you wish at deployment time). Scheduled for readyiness in two weeks.

Now, to the plusses:

::it will automatically be there on my servers
::when .NET v2.0 is installed

I have a hint for you: the MS Datagrid, is too. Still, we hardly use it. Copying another dll with the application is a non-issue.

I see ObjectSpaces really as the "MS Datagrid" of O/R mapping right now. VERY basic, VERY limited for everything a little more demanding.

Wednesday, October 29, 2003 12:20 PM by Thomas Tomiczek

# re: ADO.NET v2.0: ObjectSpaces Delivers an O/R Mapper

I always love the sound of "oh, hmm.. that's indeed a lot of work" when people discover that with a system of 100+ tables it is suddenly not 'handy' anymore to type in long lists of xml mappings :)

Though I think Object spaces will be ok when it is released, however I fear it will suffer from the same lack of vision the designers of the dataset had: it's not generic enough: do you want a server-style object broker or adapter style objects, or objects which deal with persistence themselves (3 different patterns, there are way more to define)? How are multiple databases handled? Can I plug in Oracle's superior .NET provider ODP.NET?

It really depends on the power MS will give the designer for Object spaces. I doubt the design will change anymore.

Wednesday, October 29, 2003 12:44 PM by Frans Bouma

# re: ADO.NET v2.0: ObjectSpaces Delivers an O/R Mapper

About the code, you use Northwind, LLBLGen Pro's demo also uses northwind :) So let's compare some code :)

Object spaces:
Category category = (Category)mapper.GetObject(typeof(Category), "ID=" + this.ID.ToString());

LLBLGen Pro:
CategoryEntity category = new CategoryEntity(this.ID);

This is a nice one: OS most likely has to fetch the object from the database. That's a read action which is not necessary. Here we go:
Object spaces:
category = (Category)mapper.GetObject(typeof(Category), "ID=" + this.ID.ToString());
mapper.StartTracking(category, InitialState.Unchanged);
if (this.CategoryID.Text == "0") {
mapper.MarkForDeletion(category);
}

// ..
category.Name = this.CategoryName.Text;
category.Description = this.CategoryDescription.Text;
mapper.PersistChanges(category);

LLBLGen Pro: (using the power of its dynamic query engine, which simply executes an update on the server, no read of data first)
CategoryEntity category = new CategoryEntity(); // empty object
category.CategoryID = this.ID;
category.IsNew = false;
category.Description = this.CategoryDescription.Text;
category.Save();

And a last one, and I doubt Object Spaces should be used this way (the ObjectSpace should be kept in process, or not?)
Object Spaces:
ObjectSpace mapper = new ObjectSpace (Mapping, connection);
ObjectSet objects = mapper.GetObjectSet(typeof(Category), "");

LLBLGen Pro:
CategoryCollection categories = new CategoryCollection();
categories.GetMulti(null);

Now, if I can cook up code that is this simple, MS must be able to do it even better, not? :)

Wednesday, October 29, 2003 12:58 PM by Frans Bouma

# re: .NET v2.0: FTP Classes are now Provided

The name FtpWebRequest suggests that its related to ASP.NET. But if I want to use it to ftp files across systems from Windows Forms or Services I could still use this. Right ?

Wednesday, October 29, 2003 1:44 PM by Srini M

# re: ADO.NET v2.0: ObjectSpaces Delivers an O/R Mapper

Yea, good point, Frans :-)

With the EntityBroker 2004 we also have the ObjectSpaces API, but we have a reason: we allow the objejcts to live on a remote server, and this - well - requires a factory approach.

Sadly, between an easy to use appraoch (as LLGBRN Pro) and the feature richness of the EntityBroker 2004 (both avaialble NOW - not in a year with .NET 2.0), I stll think MS has basically killed the market. Noone can compare with a company that just puts the costs down into some area it does not care. long term (and I mean a year from now), noone is going to use any of our products, despite the ease of use.

Wednesday, October 29, 2003 1:47 PM by Thomas Tomiczek

# re: ADO.NET v2.0: ObjectSpaces Delivers an O/R Mapper

Excellent comments guys. I still need to test LLBLGen Pro myself. It looks great, and I know EntityBroker is great. I actually did a demo of EntityBroker that ran flawlessly against both MS SQL and Access, and that's been a while so Thomas has added many more features since then. BTW, the ObjectSpaces documentation seems to imply that MS SQL is a short-term limitation, but I never could get this confirmed as the case from anyone.

Wednesday, October 29, 2003 1:47 PM by Paul Wilson

# re: ADO.NET v2.0: ObjectSpaces Delivers an O/R Mapper

Ouch Thomas. I doubt that. I would guess your biggest competition is Sysiphus, Norpheme, or something else that's free. I liked Norpheme, even though it was a long way from EntityBroker, and Sysiphus is provider-agnostic already, as well as being open-source. Surely there's a small but viable market for more than MS, but the problem is there a quite a few entries in that field already -- and I've only named the ones I have used or know enough about to think they are deserving.

Wednesday, October 29, 2003 1:52 PM by Paul Wilson

# re: .NET v2.0: FTP Classes are now Provided

Yes, its in the System.Net namespace, so it doesn't even require a reference to the Web stuff, and it suspect it should work on XP Home as well.

Wednesday, October 29, 2003 1:53 PM by Paul Wilson

# re: ADO.NET v2.0: ObjectSpaces Delivers an O/R Mapper

Well, Paul, thank heaven the EntityBroker is just what it is because we NEED it, not for sales primarily. We work on some stuff that would simply not be pssible with stuff like ObjectSpaces.

Regarding Norpheme and Sysiphus - well, let me say they were competitors for 2003. For 2004 wejust dust them (all the features I listed as missing in my post above are handlable with Eb 2004 - you should see our remoting solution in action, with NEARLY the same speed as a local object, thanks to extensive local caching).

But fact is: Microsoft has closed a door here.

Wednesday, October 29, 2003 2:00 PM by Thomas Tomiczek

# re: ADO.NET v2.0: ObjectSpaces Delivers an O/R Mapper

Paul: OS is part of .NET 2.0. So when they fix the single db thing, they have to update .NET. This requires a service pack. It won't be there for 6 months I think. With the announcements by IBM and Oracle to support .NET in full strength, this is a major blow for OS.

The current crop of open source products all follow the same thing: add attributes, and it will be fine. This is not working for projects with 50 or 100 tables or more (and that's common). Not only do you have to write the classes by hand, you also have to type in the mappings by hand.

When open source tools will get designers that create good mappings and in a fraction of the time, it will be worth it to look at them. Until then, the tools are not really a solution to the real problem: having to type code you can also generate.

Wednesday, October 29, 2003 3:58 PM by Frans Bouma

# re: ADO.NET v2.0: ObjectSpaces Delivers an O/R Mapper

Thomas: about the cashflow, same here. We use it to make the company run break even (and even better than that) and we can build projects for clients in the rest of the time.

Companies who solely rely on one software product like an O/R mapper will get a tough year. Not because competitors get better and a lot cheaper but also because MS ships a tool that will appeal to their target base at first (which will cause a dip in sales)

Wednesday, October 29, 2003 4:03 PM by Frans Bouma

# re: .NET v2.0: FTP Classes are now Provided

Strange naming. FtpWebRequest?

Wednesday, October 29, 2003 6:39 PM by Anton

# re: ASP.NET v2.0: Posting to Other Pages is too Limited


>This is a great feature, but there is little need for posting to another page of your own application!

and I thought I was the only one who did not get it.

I agree, like you said, the form should be able to post to "other" applications, services etc.

Wednesday, October 29, 2003 10:27 PM by Ron Krauter

# re: ASP.NET v2.0: Posting to Other Pages is too Limited

Well, I think the MS solution is focuing on maintaining the ASP.NET "feel" around. You know, having the old page available, stuff like this. Stuff that is very valuable within the complex of one application.

THe problem is, though, that it makes it "impossible" to integrate - as you do with your control - forms that are pbasically NOT controleld by ASP.NET and go for other applications. I definitly see your point with things like payment processors.

This is definitly a limitation that people will stumble over soonish.

Thursday, October 30, 2003 6:14 AM by Thomas Tomiczek

# re: ASP.NET v2.0: Posting to Other Pages is too Limited

>This is a great feature, but there is little need for posting to another page of your own application!

I have to disagree with this. Posting between pages in your application is very useful if you want to transfer state from page to page without relying on server-side session state (or resorting to the awful Server.Transfer, which completely destroys the browser navigation model).

On the other hand, I agree that cross-site posting can be useful, and I'm not sure why they disabled.

Thursday, October 30, 2003 2:36 PM by Kevin Dente

# re: ASP.NET v2.0: Posting to Other Pages is too Limited

I agree its useful in the same app, just not that big of a need in comparison since there are plenty of alternatives in the same app, unlike the cases outside of your own app.

Thursday, October 30, 2003 4:57 PM by Paul Wilson

# re: ASP.NET v2.0: Code-Beside Replaces Code-Behind

I hope I'm not misunderstanding this post... But I like that current system because it is nice to fire up dreamweaver or Visual Studio.net and make a change to the aspx file which doesn't effect the code behind page, upload it to the server, and NOT have to recompile. I hope that we don't lose this!

Friday, October 31, 2003 11:10 AM by Rob McEwen

# re: ASP.NET v2.0: Code-Beside Replaces Code-Behind

As long as you don't precompile the code-beside you will find those changes in the aspx file to actually be easier than they are now! On the other hand, if you choose to pre-compile your code-beside, then you will also be pre-compiling your aspx pages too, unlike today.

Friday, October 31, 2003 2:18 PM by Paul Wilson

# re: .NET v2.0: Serial Port Communications Finally Arrives

This is somewhat bad for me :). I just finished working on a library that I am planning on selling soon that contains a SerialPort class, an underlying stream, as well as integrated ZModem file transfer (and maybe some of the other ones if i have time to include them). Whidbey keeps implementing technology I've been working on for the past 2 years and have been planning on selling. I guess I have about a year of viability now.

Saturday, November 01, 2003 8:38 AM by Ron Buckton

# re: .NET v2.0: Serial Port Communications Finally Arrives

There are several free libraries for .NET already, including one on GotDotNet that is supposedly the basis for what will be added to Whidbey, so I'm not sure you have much of a market even now. :(

Saturday, November 01, 2003 10:58 AM by Paul Wilson

# re: ASP.NET v2.0: Posting to Other Pages is too Limited

Thanks Paul -- we'll definitely take a look at this.

Monday, November 03, 2003 8:06 PM by Rob

# re: .NET v2.0: FTP Classes are now Provided

Hi,using FtpWebRequest class can you write code to connect to remote FTP server and fetch files??????

Tuesday, November 04, 2003 2:08 AM by santy

# re: .NET v2.0: FTP Classes are now Provided

Yes -- that's what FTP is all about.

Tuesday, November 04, 2003 5:44 AM by Paul Wilson

# re: ASP.NET v2.0: Code-Beside Replaces Code-Behind

If we write every code inside aspx file do we still need Code-Beside file which is most of the time remains empty???

Tuesday, November 04, 2003 8:17 AM by Anatoly Rapoport

# re: ASP.NET v2.0: Code-Beside Replaces Code-Behind

No. VS.NET Whidbey will give you a choice to use separate code file or inline code. You certainly do not need the separate file if you intend to use inline code. Also, unlike today, it will give you full intellisense with the inline style, and a view that is code only. I would still recommend the separate file if you are in a team environment, as it allows different people to work on the GUI and the code.

Tuesday, November 04, 2003 8:46 AM by Paul Wilson

# re: ASP.NET v2.0: Code-Beside Replaces Code-Behind

Thanks Paul, I appreciate your help

Tuesday, November 04, 2003 9:54 AM by Anatoly Rapoport

# re: Visual Source Safe to be Improved Afterall

Yup, like you say, it's a start. Still, it's difficult to build a palace upon a log cabin foundation.

Thursday, November 06, 2003 8:47 PM by Jerry Dennany

# re: ObjectSpaces to NOT be Slower Afterall

I thought that ObjectSpaces needed to go directly to tables - and had no support for Stored Procedures (which, in my world is the ONLY way of exposing CRUD). I know that there is generally a lot of dissapointment around objectspaces - not only because of performance reasons.

Friday, November 07, 2003 4:29 PM by - JS

# re: ObjectSpaces to NOT be Slower Afterall

You actually can use stored procedures for your selects (the R in CRUD) with ObjectSpaces, although not with the persistence methods (CUD). Its not immediately obvious, but you can use a datareader directly to populate the objects, and maybe they'll get the other methods in there yet. Anyhow, while it may not be wrong to use SPs with an O/R mapper, its also not the most effective way to use the whole O/R paradigm in the first place. For instance, the real advantages in my mind for an O/R mapper is to save the time and not write SPs, to have more query capabilities than SPs could ever expose, and be platform independent which SPs prevent. I came from the SP model, and I'm still using them at work, so O/R mappers are not for everyone (yet), but SPs aren't the end all anymore either. For instance, all queries are cached and reused in modern dbs, not just SPs, so there really isn't any performance differences. SPs are also often used for security, but there are just as many ways to secure the tables directly, or you can use views if you must. For that matter, I've seen lots of systems where tables are locked down and access is only allowed through SPs that must then either open up the tables or create views of them all in order to allow end-user reports! SPs make it easier to have db logic separate from code, but O/R mappers just do away with all of it in the first place, so that's not an issue either. It also assumed that you can better optimize SPs, but most optimization is done through db design and indices, and on the fly by the db, and if there really are issues remaining, then you can still use an optimized view instead of a SP. So, I came from the SP school, but I've pretty much been convinced that is not so special anymore, but I'm still not sure when I'll ever be allowed to use an O/R mapper in the real world. My biggest hope is that the inclusion of ObjectSpaces in the core .NET framework will make it more acceptable so that I can use an O/R mapper, ObjectSpaces or otherwise. BTW, I think O/R mappers make a lot more sense than trying to put all your C# business logic in the db as Yukon allows.

Friday, November 07, 2003 7:33 PM by Paul Wilson

# re: ObjectSpaces to NOT be Slower Afterall

If object space object use external xml mapping file, does it mean I have to copy xml mapping file when I want to use an object from another project?

Sunday, November 09, 2003 2:08 AM by Anatoly Rapoport

# re: ObjectSpaces to NOT be Slower Afterall

You specify the location of the mapping files, so there's no reason multiple applications could not share mapping files as long as the files are accessible to all of the apps.

Sunday, November 09, 2003 2:35 PM by Paul Wilson

# re: .NET v2.0: Serial Port Communications Finally Arrives

Does anyone know where the full definition of this class can be found.

Thursday, November 13, 2003 10:15 AM by Curtis Nielson

# re: .NET v2.0: Serial Port Communications Finally Arrives

.NET v2.0: http://asp.net/whidbey/

Full definition? What do you mean?

Thursday, November 13, 2003 10:23 AM by Paul Wilson

# re: Random Observations

Ouch! Am I to realize that I'm posting too much over too little?

Saturday, November 15, 2003 10:35 AM by Roy Osherove

# re: Random Observations

The scrollbar bug is caused by the latest patches from Microsoft. They know about it, but have not issued a fix.

http://www.eweek.com/article2/0,4149,1382912,00.asp

Saturday, November 15, 2003 11:12 AM by Derek Stone

# re: Random Observations

another random observation with IE after the latest patches ...

CTRL+ F to search for a word you're looking for (e.g., Random)
The word is found and highlighted as it should be, but then (with the find dialog still visibile) if you use the scroll bar to scroll the highlight word into view, it becomes unhighlighted! This never used to happen!

Saturday, November 15, 2003 11:57 AM by b

# re: The .NET Community in Atlanta

Hey, you should get Mark Dunn to come and speak. He's in your backyard.

Carl

Saturday, November 15, 2003 12:09 PM by Carl Franklin

# re: Random Observations

I feel people should be more focused on quality .net content rather then how they liked the new matrix movie or how the last last user group meeting was.
Lower the signal vs noise ratio !

Saturday, November 15, 2003 12:23 PM by Oddur Magnusson

# Recordset sorting in SQL Server

Sunday, November 16, 2003 11:05 AM by TrackBack

# re: Random Observations

I agree. There does seem to be a wide variety of traffic coming through on the main feed. I just recently switched from many individuals feeds to the main feed, but I believe I will be switching back.

We just need to be able to make an aggregate feed of those we wish to follow or something like that. A lot of repeated entries to when they are just links to other entries(i.e. Mike Deem's new WinFS blog seems to be the hot link right now)

Sunday, November 16, 2003 7:43 PM by Adam Kinney

# re: ASP.NET v2.0 (Whidbey) Articles on ASPNetPro.com

it is very good

Monday, November 17, 2003 12:02 AM by srini

# re: ASP.NET v2.0 (Whidbey) Articles on ASPNetPro.com

but it is giving a copy of this articles

Monday, November 17, 2003 12:03 AM by srini

# re: Random Observations

Its a relief to know that scrollbar advance is a bug. I thought it was only my m/c, since none of my colleagues complained about it.

Monday, November 17, 2003 1:29 PM by Dude

# re: Random Observations

i just noticed the scrollbar thing last night. really annoying.

Monday, November 17, 2003 2:13 PM by andy webb

# re: Introducing DotNetAtlanta.com with Forums

Woohoo!!! Another forums installation -- very cool ;)

Monday, November 17, 2003 10:32 PM by Rob Howard

# re: Getting the ASP.NET Forums to Actually Work

I've written a few words on the problems I encountered in setting up the ASP.NET forums too:

http://www.charon.co.uk/content.aspx?CategoryID=28&ArticleID=49

Tuesday, November 18, 2003 5:54 AM by Jules

# re: Getting the ASP.NET Forums to Actually Work

Thanks for your details and clear play-by-play of getting ASP.NET forums to work. (Jules, thanks for you description as well.)

I just checked out dotnetAtlanta's new forums section. Looks good!

I never thought of using tracing for detecting patterns for looking for patterns. I'll have to explore that more.

Tuesday, November 18, 2003 10:10 AM by Dave Burke

# re: Getting the ASP.NET Forums to Actually Work

Sorry for the noise, Paul, but I just re-read my post and I seem to like finding patterns. :-) .text 0.98v needs commenter authentication and comment editing support...

Tuesday, November 18, 2003 10:12 AM by Dave Burke

# re: WinForm UserControls in Internet Explorer

You may want to take a look at MS knowledgebase article 814668.

Wednesday, November 19, 2003 5:56 PM by Tim Clamp

# re: .NET v2.0: FTP Classes are now Provided

hi, do you know when the .net 2.0 will roll out? I need FtpWebRequest and FtpWebResponse now and I am wondering does it worth to create a version of my own?

Thanks!

cliff@arialsoftware.com

Wednesday, November 19, 2003 6:45 PM by cliff

# re: .NET v2.0: FTP Classes are now Provided

Late 2004 hopefully. So no time soon.

Wednesday, November 19, 2003 8:02 PM by Paul Wilson

# re: ADO.NET v2.0: ObjectSpaces Delivers an O/R Mapper

I'm really surprised that none of the solutions that I've seen so far in the .NET O/R mapping space look anything like JDO, right now the holy grail of transparent object persistence in Java. The only thing better than JDO in Java is Gemstone Facets, where persistence hooks are built right into the virtual machine.

I suggest downloading the spec and grabbing a trial version of one of the vendors' products (see http://www.jdocentral.com for info). Here's a quick sample of how JDO looks to the developer:

// ignore details on getting a PersistenceManagerFactory for now
PersistenceManagerFactory pmf = ...;
PersistenceManager pm = pmf.getPersistenceManager();
Transaction txn = pm.currentTransaction();
try {
txn.begin();

Foo foo = pm.getObjectById(new Long(1234), true);
foo.setBlazz("sadfsfsdf");
Bar bar = new Bar();
foo.setBar(bar);
Blah blah = new Blah();
bar.addBlah(blah);

txn.commit();
}
catch (Exception x) {
txn.rollback();
throw x;
}

Some things to note:
* Foo is retrieved from the datastore by id (could query for it, too)
* bar & blah are reachable from a persistent object, so they are persisted during commit
* Any changes to an object or an object's collection(s) are tracked and committed also

What a .NET version of this would look like:

PersistenceManagerFactory pmf = ...;
PersistenceManager pm = pmf.GetPersistenceManager();
Transaction txn = pm.CurrentTransaction;
try {
txn.Begin();

Foo foo = pm.GetObjectById(1234, true);
foo.Blazz = "sadfsfsdf";
Bar bar = new Bar();
foo.Bar = bar;
Blah blah = new Blah();
bar.AddBlah(blah);

txn.Commit();
}
catch (Exception x) {
txn.Rollback();
throw x;
}

--matthew

Thursday, November 20, 2003 10:53 AM by Matthew Adams

# re: ADO.NET v2.0: ObjectSpaces Delivers an O/R Mapper

BTW, here are what classes Foo, Bar, and Blah look like. Notice that they don't extend some tool-provided base class, nor do they have any persistence code in them. References are lazily loaded or fetched with referencing class as desired. Use of standard Java collections is supported.

public class Foo {

private String blazz;
private Bar bar;

public Foo(String blazz) {
setBlazz(blazz);
}

// no-arg constructor required; can be private if desired
private Foo() {}

public String getBlazz() { return blazz; }
public void setBlazz(String blazz) { this.blazz = blazz; }

public Bar getBar() { return bar; }
public void setBar(Bar bar) { this.bar = bar; }
}


public class Bar {

private List blahs;

public Bar() {
blahs = new java.util.ArrayList();
}

public void addBlah(Blah blah) { blahs.add(blah); }
public void removeBlah(Blah blah) { blahs.remove(blah); }
}

public class Blah {
// ...
}

--matthew

Thursday, November 20, 2003 11:19 AM by Matthew Adams

# Г-н

TFSWAPI.DLL

Friday, November 21, 2003 7:06 AM by Гайнуллов Айрат

# re: Online Aggregator: BlogLines.com

Hi Paul,

What do you mean by "have all the various feeds sorted together ?"

Since I'm preparing my own Online Aggregator, which will be published in about 2 or 3 weeks, I'm gathering all feature requests and ideas to provide a valuable service :)

Saturday, November 22, 2003 6:17 AM by Julien CHEYSSIAL

# re: Online Aggregator: BlogLines.com

There should be an option to just see all items in chronological order, regardless of originating feed, instead of just viewing each feed separately. Like:

Feed 1 -- Item 11/22/2003 6am
Feed 2 -- Item 11/22/2003 2am
Feed 3 -- Item 11/21/2003 9pm
Feed 2 -- Item 11/21/2003 4pm
Feed 3 -- Item 11/21/2003 1pm
Feed 1 -- Item 11/21/2003 8am

Saturday, November 22, 2003 8:34 AM by Paul Wilson

# re: Online Aggregator: BlogLines.com

Paul: The problem I have with Bloglines (and with MyBlogroll) is that it doesn't support xhtml:body. If the full text of a post is available in an RSS feed, I want to see it in my aggregator, regardless of whether it's in the description, content:encoded or xhtml:body.

I also appreciate support for the Dublin Core extensions (dc:author, dc:date, etc.) nntp//rss (http://www.methodize.org/nntprss/) still kicks ass, as far as I'm concerned.

Sunday, November 23, 2003 12:06 AM by Phil Weber

# re: Have You Seen My Website Yet?

LOL

You make me confused Paul.. It's early morning here, I read the blog by Robert in just 15 mins ago, and now... I see another blog in a "similar" structure again :)

Sunday, November 23, 2003 8:56 PM by Colt

# re: Have You Seen My Website Yet?

I can't wait for the sequels...."Paul Wilson: Why I am so smart", "Paul Wilson: Why my Superman.NET nickname might make you think I have a high oppinion of myself" and the highly anticipated "Paul Wilson vs. Pascal L Deathmatch".

Sunday, November 23, 2003 8:56 PM by JosephCooney

# re: Have You Seen My Website Yet?

Excellent....wonder when the first 'look at this flashy banner, isn't it cool' post will arrive :-)

Sunday, November 23, 2003 9:06 PM by Scott Galloway

# re: Have You Seen My Website Yet?

LOL.....Nice!!!!

Sunday, November 23, 2003 9:07 PM by Jeff Julian

# re: Have You Seen My Website Yet?

I've got no problem with Robert's post, or even this one. I don't mind people talking up their own stuff, becasue if they don't who will. I've been around long enough to know not to throw stones in glass houses. I'm not perfect, and have made my share of mistakes in my time, so I try to remember it when I want to flame someone. Doesn't always work, but I do try.

DonXML

Sunday, November 23, 2003 9:22 PM by DonXML

# re: Have You Seen My Website Yet?

Meow ;)

I can't wait for the entry on "<blink>"

Monday, November 24, 2003 2:44 AM by Phil Winstanley

# re: Have You Seen My Website Yet?

haha :) Great one, Paul :)

Monday, November 24, 2003 3:50 AM by Frans Bouma

# re: Have You Seen My Website Yet?

Hey Paul you forget the marlketing aspect. You should price your DynamicImage control for the safe of humanity, saying 9.99 $. It's so cheap !

Monday, November 24, 2003 4:19 AM by Paschal

# re: Have You Seen My Website Yet?

too funny...

Monday, November 24, 2003 12:14 PM by Jerry Dennany

# re: Have You Seen My Website Yet?

I'm just wondering what it is that we all don't know here.. like maybe Paul's girlfriend left him for Robert or something? I just can't get over how mean-spirited this is.

Monday, November 24, 2003 1:04 PM by Travis Laborde

# re: Have You Seen My Website Yet?

LOL :-) Nice one.

Monday, November 24, 2003 4:14 PM by Vazz

# re: Have You Seen My Website Yet?

I read this and thought, "hey, this doesn't sound like Paul Wilson!" Then I read the postscript... Man, that's cold. I'm still laughing. :-)

Monday, November 24, 2003 8:19 PM by Dave Burke

# re: Have You Seen My Website Yet?

I just want to make sure I'm on the mailing list when tickets go onsale for that "Paul Wilson vs. Pascal L Deathmatch!"


Monday, November 24, 2003 8:26 PM by Dave Burke

# re: Weird Session State Problem and Computer Names

Thanks Paul.

"domain name and the server name"

Tuesday, November 25, 2003 3:06 PM by Andrew

# re: Weird Session State Problem and Computer Names

whoa! Thanks for the heads up, Paul. I just installed a test run for some software I finished a few months ago onto an end-user's computer (into IIS) and held my breath for a second while I remembered his computer name has a *dash* (-) not an *underscore* (_)...whew!

Um, maybe I should click thru that link you got up there just to make sure.:)

Tuesday, November 25, 2003 4:26 PM by Chris Frazier

# re: Weird Session State Problem and Computer Names

This is not the first IE security fix that screws up the way IE works (KB 814458 for another example). I suspect these security patches are rushed out without properly evaluating the negative implications: in this case surely it would have been possible to allow underscores without compromising security.
I understand that security is *the* priority, but that doesn't preclude making sure the fixes don't break existing apps.

Tuesday, November 25, 2003 4:59 PM by Me

# re: Weird Session State Problem and Computer Names

What a wonderful bit of esoteric information! :-) Thanks, it was fun to read this post.

Tuesday, November 25, 2003 8:31 PM by Scott Mitchell

# re: Weird Session State Problem and Computer Names

Paul - I fought that problem for SIX months. It happened with an I.E. upgrade and is only related to INTRANETs (ok on www). I could not get to the bottom of it because there was no pattern on why some machines at my client site were having the problem and others weren't. Oh, and it was with an ASP app which I had written in mid-2001. The problem started in maybe late spring of 2002. Finally I had the brilliant Chris Kinsman at my house when he was speaking at the user group (Oct. 2002) and I asked if he could look at the problem for me. He tried a few things, googled the CORRECT queries and found the answer that had evaded me for so long. So congrats for figuring it out all by yourself and very quickly too!

Tuesday, November 25, 2003 8:37 PM by julie lerman

# re: Force ASP.NET Apps to Keep-Alive and Pre-Compile

Wouldn't it be a good idea to add a setting in the web.config of Whidbey to allow this ?

Tuesday, December 02, 2003 11:01 AM by Daniel

# re: Aspect-Oriented Programming (AOP) and Tracing

Compare the time it takes to call a method in your ContextBound object with the time it takes to call a standard class.

Then you'll discover why O/R mappers that use this approach are sooo slooow.

Friday, December 05, 2003 2:21 PM by Peter Quatrocky

# re: Aspect-Oriented Programming (AOP) and Tracing

ContextBound objects vs. normal objects are very slow. Unfortunately, this is the only easy way to do this type of call interception right now (there are some other ways to do it, such as re-jitting stuff on the fly...but they are a lot more difficult).

Friday, December 05, 2003 3:01 PM by Jesse Ezell

# re: Aspect-Oriented Programming (AOP) and Tracing

Also ContextBoundObjects are no longer under development by Microsoft. They will not be thrown away, but nothing new is going to be done to them (so says Don Box at a conference I can't remember...I want to say the Chris Sells XML conference), and they won't support them if something breaks.

Friday, December 05, 2003 3:54 PM by Justin Rudd

# re: Aspect-Oriented Programming (AOP) and Tracing

Justin's remarks aren't exactly true - remoting is getting some work done in whidbey.

Also, I believe that Microsoft will support remoting if it just 'breaks'. At the PDC, Don Box launched is initial talks with the mantra that remoting as we know it is dead, but after a relatively large uproar from the developer community, he toned down that message by several decibels. By the end of the conference, Don was suggesting that Microsoft would continue to support remoting, and that if you wished to keep using it, 'go in peace'.

Friday, December 05, 2003 9:10 PM by Jerry Dennany

# re: ASP.NET v2.0: Posting to Other Pages is too Limited


Posting to other pages will eliminate some need of Response.Redirect,Server.Transfer that causes ThreadAbortException Exception boosting performance

Tuesday, December 09, 2003 3:09 AM by Manish Rawat

# re: Timezone Bug in Visual SourceSafe

Wow!!! Very interesting scenario!

Wednesday, December 10, 2003 5:04 PM by Sreedhar Koganti

# re: Timezone Bug in Visual SourceSafe

maybe it follows 'swatch time'.. :-)

Wednesday, December 10, 2003 5:15 PM by SBC

# re: Cool Web Debugging Tools

Never used FullSource. Can't imagine anything better than these 2.

Html Source Bar (live source,images, cookies, frames etc.)
http://home.worldonline.dk/viksoe/htmlbar.htm

IE Scripter (Inject script into a web page)
http://home.worldonline.dk/viksoe/iescripter.htm

Wednesday, December 10, 2003 6:33 PM by Jim C

# re: ADO.NET v2.0: ObjectSpaces Delivers an O/R Mapper

::Notice that they don't extend some tool-
::provided base class, nor do they have any
::persistence code in them.

JDO uses code rewriting (changing the bytecode when a class is loaded). This is easily done in Java, but simply one thing in .NET: Impossible.

It would be wonderfull, and I would push our EntityBoker over to it immediatly. Just it is not possible. There is no class loader that ever sees and can exchange the bytecode.

Unless you make this a profiler, which is a debugging API and thus not usable for serious projects.

Thursday, December 11, 2003 2:47 AM by Thomas Tomiczek

# re: Timezone Bug in Visual SourceSafe

yup, known bug. It's actually a design bug, and microsoft's suggested solution is to purchase a third part product (Source Offsite) to fix this.
My suggested fix is to use a different SCC solution, but that's really a tough sell sometimes.

http://support.microsoft.com/default.aspx?scid=kb;en-us;248240&Product=vss

http://support.microsoft.com/default.aspx?scid=kb;EN-US;150643

Saturday, December 13, 2003 11:05 PM by Jerry Dennany

# re: Aspect-Oriented Programming (AOP) and Tracing


Hi,

Your blog contains good info. Keep it up.

Sunday, December 14, 2003 8:21 AM by John

# re: Timezone Bug in Visual SourceSafe



Hi,

Good work, well done

Monday, December 15, 2003 3:07 PM by Ted

# re: ValidateRequest in ASP.NET v1.1

I think this feature is a pathetic attempt at security and a nuisance at best. Why is it that Microsoft can't write a RegEx that is a little more specific to malicious code?

Hm? <b> That seems threatening. *rolls eyes*

Here's a hint for Microsoft, match this instead: <script>

Tuesday, December 16, 2003 4:49 PM by PC

# re: Timezone Bug in Visual SourceSafe

I first came accross this when doing Y2K work back in 1999. Some of our developers were working with the clock set forward a couple of years.

It caused more problems than the Y2K bug did!

Wednesday, December 17, 2003 4:43 AM by Martin

# re: Timezone Bug in Visual SourceSafe

VSS is totally clueless about a number of things!

It's also very good about not letting others get updated files if an error occurs during the status file update. Checkout of the file again fixes this one though.

Wednesday, December 17, 2003 1:20 PM by David Yack

# re: Aspect-Oriented Programming (AOP) and Tracing

there is a beta product out there called loom.net that helps you design fault tolerance into your system. i believe the guy doing it is also sponsored by microsoft....you can download it easy enough (i forgot the exact url but you can google for it). it has some sweet content describing how it can be done and it can give you a rough preview of how it might be implemented into .net at some point in the future (conjecture but you gotta imagine it will at some point).

also i have been trying to get an article or two published about using attributes to assign behavior (and validation) to class properties, method parameters and such. we are using it where i am at and it is pretty cool. i can share with you some of my thoughts on it if you like.

Sunday, December 21, 2003 10:52 AM by Mathew Nolton

# re: .NET v2.0: Serial Port Communications Finally Arrives

How can I get this class?

Tuesday, December 23, 2003 3:02 AM by olive

# re: Aspect-Oriented Programming (AOP) and Tracing

Wednesday, December 24, 2003 12:13 PM by Telarian

# re: Aspect-Oriented Programming (AOP) and Tracing

Wednesday, December 24, 2003 12:15 PM by Telarian

# re: Aspect-Oriented Programming (AOP) and Tracing

EIF and most all the MS Application Blocks are just way overkill. Log4Net is almost always better, due to simplicity, than EIF.

Wednesday, December 24, 2003 1:25 PM by Paul Wilson

# re: MSDN Subscription does NOT contain .NET v1.0

Can't you just go download it?

Tuesday, December 30, 2003 10:46 AM by sdsdd ddeee

# re: Announcing the WilsonORMapper

Fabrice: one more entry for SharpToolBox ;-)

Wednesday, January 07, 2004 5:36 PM by Christophe Lauer

# re: Announcing the WilsonORMapper

Best practices, $50? Anyway very impressive.

Thursday, January 08, 2004 4:59 AM by Paul Gielens

# re: Announcing the WilsonORMapper

Wow, that $50 is getting to be a better deal every day.

Thursday, January 08, 2004 12:42 PM by Jerry Dennany

# O/R Mappers: To Attribute or Xml ?

Thursday, January 08, 2004 2:12 PM by TrackBack

# re: O/R Mappers: To Attribute or Xml ?

::persistence attributes make my business
::objects very ugly for no important
::development reason

Reality check:

is this ugly?

using Builder.Cms.ComponentModel;

using EntityBroker.Foundation.Nodes;

namespace Builder.Cms {

/// <summary>
/// This subnode of ContentNode represents a simple (not to say stupid) file. File nodes are the
/// "we dont care" content nodes - whatever is stored there is just forwarded to the database and,
/// when rendering, just returned to the user. This is necessary because there wil lbe a lot of stuff
/// just to store in the content node hierarchy (like a file archive).
/// </summary>
public class File : Builder.Cms.EntityObjectSet.FileStub {

protected override void EntityObjectPostCreate() {
base.EntityObjectPostCreate ();
Particle p = (Particle) EntityManager.Create (typeof(Particle));
this.Particle = p;
}

}
}

You just see a dozen mapped fields, some relations, actually plus a lot of logic in a base class.

But wait - where are the attributes?

Oh, see the inherited stub :-) And all generated.

Again, just a reality check :-)

Thursday, January 08, 2004 2:23 PM by Thomas Tomiczek

# re: O/R Mappers: To Attribute or Xml ?

I've been working on a little Attribute based ORM in my spare time - probably not anything I'm going to release to the public, but i've used it in a prototype application, and found it to be quite useful.

However, your arguments against the attribute based ORMs are quite solid... i may have to reconsider how I go about this... not to mention that mine currently has nothing to do with persistence, but is purely an access layer.

Thursday, January 08, 2004 2:24 PM by Derick Bailey

# re: O/R Mappers: To Attribute or Xml ?

Thursday, January 08, 2004 3:06 PM by Scott

# re: O/R Mappers: To Attribute or Xml ?

My system, like ObjectSpaces, uses an external XML configuration to create the mappings between the fields in the underlying data store and the class fields.

Thursday, January 08, 2004 3:16 PM by Drew Marsh

# re: O/R Mappers: To Attribute or Xml ?

While I prefer external XML mapping the advantage I can see with mapping attributes to the class is when you add/remove fields your maintenace occurs in one location instead of two. But of course as the tools mature its GUI will end up managing that for you.

Thursday, January 08, 2004 4:02 PM by John Meilleur

# Should an O/R Mapper use attributes or a mapping file?

Thursday, January 08, 2004 4:19 PM by TrackBack

# re: O/R Mappers: To Attribute or Xml ?

I opt for mappings generated in code from a definition. This is far more optimal than xml (objects are constructed directly with the right code/data) and both are generated so it's no loss that the persistence info is inside code, you use the definition to change the mappings anyway.

So I don't think it matters much what you pick, as long as the format you pick is NOT the source of your mappings: it always should be generated from a definition a user can design in a tool

Thursday, January 08, 2004 4:21 PM by Frans Bouma

# re: O/R Mappers: To Attribute or Xml ?

Oh and this: "Why should I have to recompile my business objects just because someone changed the table or field names again?" is not an argument.

Table names do not change frequently. If they do, go online, go to the first jobsite you can think of, opt for the first job available and leave the project! :)

Thursday, January 08, 2004 4:24 PM by Frans Bouma

# re: Announcing the WilsonORMapper

Hi paul,

I predicted this yesterday. I was right! :-)
http://www.jnsk.se/weblog/posts/ormapperinterest.htm

Best Regards,
Jimmy
###

Thursday, January 08, 2004 6:16 PM by Jimmy Nilsson

# re: O/R Mappers: To Attribute or Xml ?

I'm not really up on the O/R stuff, can someone post an enlightening link about how attributes (System.Attribute based?) are used for mapping. A lot of reflection?

When I think "map" think of a piece of paper, a document that I can use to get from one place to annother.

I could esily envision using an xml file to generate source code that then must be compiled (being too lazy to write so much similar code, I already do this:).

Thursday, January 08, 2004 6:19 PM by AndrewSeven

# re: O/R Mappers: To Attribute or Xml ?

Why should you have to specify the mappings at all? It seems to me you should only have to concern yourself with what should be persisted, not how the O/R mapper does it. I understand this is not always possible though, for example if you have to work with an existing database.

Thursday, January 08, 2004 6:33 PM by Marcus

# re: O/R Mappers: To Attribute or Xml ?

I just got an email today from someone that has some of those odd requirements to create tables at runtime. He plans on changing my mapping file at runtime to dynamically map to a class that will be a superset of each of the possible dynamic tables.

Also, see Steve Eichert's post at http://dotnetjunkies.com/WebLog/seichert/posts/5386.aspx.

Thursday, January 08, 2004 7:56 PM by Paul Wilson

# re: O/R Mappers: To Attribute or Xml ?

I have never seen an instance where tables had to be created at runtime except when I worked on a SQL DMO web app.

There's no need to create tables at runtime except in those cases where you are actively administering the database.

Having an app create tables on the fly is:
1) a security risk
2) poor database design

In addition it usually indicates a poor understanding on the part of the developer about the problem domain and the type of information going into the application.

Friday, January 09, 2004 1:43 AM by Scott

# re: Announcing the WilsonORMapper

Do you support m:n relationships and the 3 types of inheritance mapping?

Best regards,
Deyan

Friday, January 09, 2004 4:16 AM by Deyan Petrov

# re: Announcing the WilsonORMapper

Hi Deyan:

I have only included the very basic 1-to-many child relationship (at least so far). I don't explicitly enable any type of inheritance mapping, but there's nothing preventing object inheritance and manual configuration of the mappings. Normalized inheritance can setup with views and stored procs, redundant inheritance could query the base type with a view that includes a union, and shared inheritance is a relatively straight-forward mapping. Sorry if I've simplified things to much -- they're all doable, but they will require some additional work.

Friday, January 09, 2004 5:43 AM by Paul Wilson

# re: O/R Mappers: To Attribute or Xml ?

::I just got an email today from someone that
::has some of those odd requirements to create
::tables at runtime.

Hm.

Tell him to get something like "SQL for people who have no clue about how to deal with databases".

I have not found this requirement in any valid way in the last 10 years. And I am sure I will not find it until I retire.

Oh, I have seen applications like this.

But basically thwy were like - well - one example:

* Invoice management. One table for every invoice, one for every invoice ' InvoiceDetails (makes tables per invoice). Comment: so that the tables do not get too large.

Well. Some poeple think a db is as stupid as they are in handling data - they can not remember more than 10 invoice details, so the db will surely also have problems.

Show me a valid example and I will change :-)

Friday, January 09, 2004 8:30 AM by Thomas Tomiczek

# re: O/R Mappers: To Attribute or Xml ?

I totally agree in principle that this type of requirement sounds ludicrous. But that doesn't really change the other arguments that I found. Also, should it really be our business to tell our customers what they can or cannot do, especially when its so easy to change our approach to enable them to do what they want? Here's a reality check -- you enable your customers if you want to sell them something.

Friday, January 09, 2004 8:45 AM by Paul Wilson

# O/R Mappers: Base Class or Not ?

Friday, January 09, 2004 9:34 AM by TrackBack

# O/R Mappers: Base Class or Not ?

Friday, January 09, 2004 9:35 AM by TrackBack

# re: O/R Mappers: Base Class or Not ?

::First, some customers do have their own
::class framework,

Ah, this old rumour.

* If it is the client's framework, can the client not inherit from the persistence base class?

* Oh, it is a third party framework? Name it. Name ONE. One that allows me to plug in my own persistence mechanism and that requires a base class.

In 8 years I work with O/R mappers I did not ONCE have the requirement for a framework to use the b ase class. Not once. I had countles people complaining about it - like little children - but when asked to provide some real world example, noone ever came up with one. Noone. Never.

::A base class approach lets you retrieve
::multiple copies of the same instance of an
::object, each with it own state

How?

This has nothing to do with base classes. Try doing this in the EntityBroker - you will be surprised.

Friday, January 09, 2004 9:46 AM by Thomas Tomiczek

# re: O/R Mappers: To Attribute or Xml ?

::Here's a reality check -- you enable your
::customers if you want to sell them something.

Here is another one: I dont help them raping a database server :-)

No, not me.

Friday, January 09, 2004 9:58 AM by Thomas Tomiczek

# re: O/R Mappers: Base Class or Not ?

http://weblogs.asp.net/aconrad/archive/2003/12/12/43172.aspx#FeedBack

There was a discussion regarding ObjectSpaces in a distributed app over on Andrew Conrads blog a little while back. The gist was that:

a) ObjectSpaces object can, of course, be sent across a web service.

b) Being able to map the OS objects across a web service is interesting and something the MS team is working on.

My first question had to do with support for other providers.

http://www.lazycoder.com/article.php?story=20031212011303281

Friday, January 09, 2004 10:50 AM by Scott

# re: O/R Mappers: To Attribute or Xml ?

Paul, your reality check bounced. ;)

If the customer is hiring us because of our experience, they should listen when we speak from our experience. I have never had a customer force me to write bad code or design a database poorly after I've shown them what's bad about it and given them an alternative. There is always an alternative to adding tables at runtime.

Unless you are working for a technically savvy customer (say, Microsoft or Oracle) you should never let the customer dictate the architecture (unless their suggestion makes sense of course).

Friday, January 09, 2004 11:00 AM by Scott

# re: O/R Mappers: To Attribute or Xml ?

I agree poor requests shouldn't dictate my architecture, but when there are two approaches and one satisfies those additional requests (and in my opinion other issues) without sacrificing the real issues . . .

Friday, January 09, 2004 11:18 AM by Paul Wilson

# re: O/R Mappers: Base Class or Not ?

Not having a base class makes you have to implement ITypedList etc on the collection classes yourself (or IEditableObject on the normal classes). You can't mix this code in via MI, because .NET is SI.

Not supplying a base class in an SI environment as .NET will thus force your customers to jump through all these hoops themselves, stuff which should be SUPPLIED by the framework of the O/R mapper.

"a) ObjectSpaces object can, of course, be sent across a web service. "
No they can not.

Say I add this member to my objectspaces filled entity:
private IComparer _myComparer;

*poof* there goes XmlSerializer...

Friday, January 09, 2004 2:20 PM by Frans Bouma

# re: O/R Mappers: Base Class or Not ?

Well said, frans.

There is quite a lot the EntityBroker base classes do by now. Pages full of code, a lot of interfaces that 99% of the .NET develoeprs out there don't understand and never deal with.

Still they are all necessary for good databinding integration and generally well behaving business objects.

Friday, January 09, 2004 2:22 PM by Thomas Tomiczek

# RE: Use with MDB Files

Paul, does this scale well with Jet MDB files (Access). I'm thinking that OLEDB/Jet is faster and more robust than people give it credit for, as long as the data being read is cached well to minimize db hits and as long as the CONCURRENT number of writes are either kept to a minimum or synchonized (serialized). Does your O/R mapper deal with this issue?

Friday, January 09, 2004 2:32 PM by Rob McEwen

# re: O/R Mappers: Base Class or Not ?

"Next, if you agree that the Manager Design Pattern is the approach to take, and you don't plan on actually having Save and Delete methods in your base class, then you also have to question if the state of the entity objects required by the mapping framework belongs in the objects or the manager."
Also not true, a good tool offers this ability. :) (okok, I need to get it out of beta and ship the basterd, but it's almost release material).

You should offer choice, some want the persistence logic in the objects, others want to add it as a service. I don't see why it would be hard to offer both after all I did both.

The real pain for the customer is in the extra functionality he otherwise has to implement by himself and which is offered by a base class, espcially in databinding scenario's, which are the scenario's all objects end up one day or the other.

Friday, January 09, 2004 2:40 PM by Frans Bouma

# re: O/R Mappers: Base Class or Not ?

"Pages full of code, a lot of interfaces that 99% of the .NET develoeprs out there don't understand and never deal with."
Same here. I still remember the WEEK it took for me to get something working with ITypedList which was truly useful in a complex databinding scenario... You don't want your customers to deal with that... (or IBindingList... how to sort? :) or Find? :) )

"Still they are all necessary for good databinding integration and generally well behaving business objects."
Exactly. I really don't understand why there isn't a base class in .NET 2.0 for offering all this. Now the customer has to develop all that by hand. Well... it's really hard. My generic property descriptor producing engine still requires an attribute and a factory to produce properties for EMPTY collections (one of these fine situations you NEED ITypedList!) There is no other way your code can know how deep the navigation is and what the type is of the objects inside a deep nested collection the grid has navigated too :)

Friday, January 09, 2004 2:44 PM by Frans Bouma

# re: Announcing the WilsonORMapper

I'm not doing any elaborate caching or anything else that will help Access -- I'm just working with both MS Sql and Access (and others untested). I definitely don't want to make any claims that my ORMapper is high performant -- its simplicity at its best, but that has many downsides when more is needed.

Friday, January 09, 2004 2:47 PM by Paul Wilson

# O/R Mappers: Simple Database Features ?

Friday, January 09, 2004 3:54 PM by TrackBack

# O/R Mappers: Simple Database Features ?

Friday, January 09, 2004 3:54 PM by TrackBack

# re: O/R Mappers: Simple Database Features ?

I played around with things like this and took the approach I saw many n-tier samples and applications take.

You have a basic IProvider interface and then for each database you just implement the IProvider for that specific database and boom you have access to O/R mapping for any database that implements IProvider ... you could even then optimize for each operation for the database ...

I've seen other O/R mappers take on this route but only ever implement one for SQL Server ...

Take note this affects objects composed of data from several different data sources.

Friday, January 09, 2004 4:10 PM by Adam Weigert

# re: O/R Mappers: Simple Database Features ?

The in house O/R mapper I wrote for our applications supports paging also. Basically specific implementations (Sql, XML, Access, etc.) choose how best to implement this under the covers. The Sql one, for example, uses TOP statement to limit the max results returned from the DB (i.e. PageSize * PageIndex) and then chops the front off the result set locally.

Friday, January 09, 2004 4:11 PM by Drew Marsh

# re: O/R Mappers: Simple Database Features ?

ANSI SQL?

Try to use ANSI joins on Oracle 8i. Very simple stuff, yet it doesn't work.

You have easy talk summed up, but when it really gets exciting, you have to dig deep into the custom code per database to support what you want to do.

Want to support updates with multi-table filters? How are you going to do that on Oracle, where no FROM clause is supported with UPDATE? Or deletes with filters spanning multi tables? No second FROM clause.

TOP clause? No can do on oracle. (rowcount). Sequences support? You don't have 'em, but you have to on Oracle. How about synonyms, one of the cornerstones in every oracle database. Does your schema reader read these?

Ansi joins? Not on oracle 8i, still a database very widely used. To support joins on Oracle 8i, you have to use stuff like:
SELECT * FROM A, B WHERE A.Foo = B.Foo(+)

For left joins.

Stored procedure support? Kicking an open door even more open. How do you filter on entity Foo by using a random field of Foo? Or combination of fields? Or filtering on a related entity of Foo to grab a set of Foo entities?

You think you can do all that with stored procs or ANSI SQL? You can't, trust me on that. My Oracle SQL generator is completely different from the Sqlserver Sql generator, because of all the Sql differences. Simple inserts or single table updates, big deal. Try to support left joins (weak relationships) on Oracle (and I don't mean just 1 single version) or other basic stuff.

As I said in a reply to Ingo's ramblings (which were completely missing the point btw): A good tool offers options to directly manipulate entities where the entities really live, like update a set of entities directly based on some criteria. I do that. It's common sense, because entities live in the database, so why can't you manipulate them directly?

Paul, a tip, forget about ANSI-SQL. It's a nice dream but it's simply not there. It won't cut it, you need custom Sql constructs per database. That's reality.

Friday, January 09, 2004 4:47 PM by Frans Bouma

# re: O/R Mappers: Base Class or Not ?

Frans,

Here is the snippet of the discussion I was referring to from Andrew Conrads blog.

"1. What happens to ObjectSpaces objects when they cross web service boundaries?

To be an ObjectSpaces object, there is no requirement to implement any interfaces or abstract classes. So in effect, any clr object can be an ObjectSpaces object and thereby is not at all tightly connected to the database. That is, once ObjectSpaces materializes the object the user is free to do what ever they want with the object. In other words, this is the same programming exercise as a typical object remoting scenario and is already solved by a number of features in the frameworks."


of course if you add any member that can't be serialized using the XMLSerializer it's going to break.

So for my own sake and the sake of others like me who are just doing simple CRUD operations and not entering the deep end of the .NET pool, why does adding the private IComparer member break the XMLSerializer?

Friday, January 09, 2004 5:17 PM by Scott

# re: O/R Mappers: Simple Database Features ?

Frans:

I don't have any significant problem with your LLBLGen Pro or Thomas' EntityBroker when it comes to multiple database support. The only one I singled out was Microsoft's ObjectSpaces, but there are others on the market that are also MS Sql only. I also did not mean that you should use only ANSI SQL at all -- I simply meant that there's no reason you can't use it to provide a minimal generic database provider. I don't want to say that its "necessary" if you support the major players (as you do), but its easily doable so I don't understand why you would not. But in no way do I think you have to use ANSI SQL for the major players, although I will readily admit that my rather simplistic ORMapper mostly does. Yes, that's probably a major flaw if I were to ever try to compete as a highly flexible and extremely performant O/R mapper, but that's your market and not mine.

As for stored procs, all I'm asking for again is minimal support, which I believe your O/R mapper has anyhow, so what's the beef? I'm not intending to say they will solve every problem, just that they are easy to implement and that they should therefore be optionally allowed. I also don't mean to gripe too much about the paging, since I just invented that request (although it sounds like others thought of it before me from the comments), but its something I do think you and others should consider going forward now. I still believe that your LLBLGen Pro and Thomas' EntityBroker are the best O/R mappers on the market, and that it also appears that this will continue to be true even after ObjectSpaces is released. I do however believe that some things can be better, and many common things can be simpler, even in your tool.

My early feedback has been very much that my simplicity has made it understandable and easy to use -- surely you guys can keep your tools more powerful while still adding some simplicity for the many many people that just want to get rid of very basic CRUD! That would also increase your sales phenomenally, since there are many more people that need to do the basics and can't handle the complexity of the more advanced tools that you are offering. Again, I have and will continue to point people to you and Thomas when they need more, and certainly many do, but consider the little guys out there too (you remember the guys that liked your original stored proc generator :).

Thanks, Paul Wilson

Friday, January 09, 2004 6:14 PM by Paul Wilson

# re: O/R Mappers: Simple Database Features ?

Paul, stop it, you make me blush in public ;)

Seriously: normal, simple CRUD stuff isn't doable with ANSI SQL so you can support multiple databases. Here are some examples:
1) a deadsimple autonumber field as PK. Do the insert. ANSI SQL doesn't contain constructs for autonumber fields. This is different per database system. SqlServer (and sybase) uses Identity columns, and you should NOT specify a value for the column. Oracle and other databases use sequences which supply the value for the column and you SHOULD specify a value for the column (the sequence). How the get the new value back? Sqlserver2000: use SCOPE_IDENTITY(), Sqlserver7: use @@IDENTITY, Oracle: use SELECT sequencename.CURRVAL INTO :parameter FROM DUAL. Other databases use even more different schemes. ANSI SQL? You will not get far for even this very simple insert statement! -> you need special code per database
2) multiple schemas vs. multiple catalogs with multiple schemas. SqlServer uses catalogs and inside the catalogs it uses schemas. Other databases use just schemas and don't understand the concept of a catalog. So code targeting SqlServer will have to deal with selects which can span multiple schemas inside a catalog (which means schema info has to be supplied WITH the fields and tables!) and/or multiple schemas in multiple catalogs (for example look up table select in the lookup table catalog using a FK field in another catalog. Simple stuff, yet it can't be done with the same code which is used for Oracle too, because Oracle doesn't understand catalogs, so you can't formulate the query for Sqlserver using oracle constructs, you can't specify the catalog info, however, you can't use sqlserver's constructs on oracle because oracle doesn't understand the concept of a catalog. (so doesn't understand what database.dbo.tablename means.) -> you need special code per database
3) table names/field names with spaces. Stupid idea to include spaces in tablenames or fieldnames, yet people do it. (hell, even northwind contains a table with a space in the name). How to execute the most SIMPLE CRUD routines on these tables/fiels? How to specify the names? Oracle doesn't understand '[foo bar]'. SqlServer doesn't understand '"Foo bar"'. -> you need special code per database
4) You mention stored procedures for very simple CRUD. Ok, let's do that. Let's use the most SIMPLE procedure for retrieving a simple entity: SELECT * FROM Table WHERE PkField = @PkFieldValue.
You think you can call that proc with portable code? Not at all! Ever looked at how Oracle (and other databases!) return resultsets? That's right, through cursors, the Oracle's REF CURSOR parameters. Now, SqlServer does this differently, a proc simply executes a SELECT statement and the results are the resultset returned. With Oracle, you have to bind the REF CURSOR parameters to a dataset and then populate the dataset using the cursors. (or run through them manually). Furthermore, if you use the Oracle provider shipped with .NET, the Microsoft one, you are out of luck with REF CURSORs and smooth code: if a proc returns 2 resultsets, you have to walk through the ref cursors by hand, binding them one by one by hand. ODP.NET does this automatically.

Your idea about ANSI SQL is good, I had that idea once too (I spend a lot of time looking for the ISO/ANSI SQL docs to build my query language upon) but I let that idea go the minute I started working on the Oracle code: a lot of simple SqlServer code didn't work on Oracle simply because a lot of it is different.

Remember, I talked about very very very basic stuff in this reply :) I didn't even mention ANSI joins which are not supported on Oracle 8i. I also didn't mention the paging you implemented. On SqlServer you can't implement reliable paging, you have to requery every time and the new results can differ from the previous call. On Oracle you can use a rownum value to implement easy paging. Difference again.

IF you want to support even just simple CRUD but you want to do that IN FULL! for multiple databases, you have to bite the bullet and implement various paths in your code for each database vendor. That's REALITY. Thinking you don't have to is naive. I'd like to see your insert code do its work on Oracle with sequences, or inserting data in my 'Test' schema in my SqlServer catalog. Not to criticize your code, Paul, but your, sorry, naivete about this subject. :)

Saturday, January 10, 2004 5:38 AM by Frans Bouma

# re: O/R Mappers: Simple Database Features ?

A good page to check differences from the ANSI standard in various databases:
http://troels.arvin.dk/db/rdbms/

Saturday, January 10, 2004 6:01 AM by Frans Bouma

# re: O/R Mappers: Simple Database Features ?

And here's another one (I was looking for this one, while I stumbled upon the previous link which points to this one ;)
http://developer.mimer.com/validator/comparison/comparison%20chart.tml

Saturday, January 10, 2004 6:14 AM by Frans Bouma

# re: O/R Mappers: Simple Database Features ?

There is not much to add to Fran's statement.

My experience when working with Oracle & SqlServer & Access is identical.

SQL is great as programming langauge, but sucks as hell as abstraction. No standardisation that is really worth mentioning. You need special cases everywhere.

One of the glories of our EntityBroker is that I really don't have to care about this (as in every other O/R mapper). This IS a MAJOR pain to do manually.

Saturday, January 10, 2004 7:40 AM by Thomas Tomiczek

# re: Weird Session State Problem and Computer Names

What though if it is not practical to change the name of the computer or server? Is there another way round this

fmercer@blueyonder.co.uk

Saturday, January 10, 2004 8:39 AM by David

# re: Weird Session State Problem and Computer Names

I didn't find a work-around, other than using localhost. I suppose you could use DNS to setup some other recognized names.

Saturday, January 10, 2004 8:52 AM by Paul Wilson

# Some Links #10

Saturday, January 10, 2004 9:03 AM by TrackBack

# Some Links #10

Saturday, January 10, 2004 9:04 AM by TrackBack

# re: O/R Mappers: Simple Database Features ?

Thanks for all the links and info Frans. :) I'm sure I'll be adding more vendor specific stuff as I start dealing with more bugs and features.

Right now I just do the auto-ids differently:

"SELECT KeyField = SCOPE_IDENTITY()" for MS SQL,
"SELECT @@IDENTITY AS KeyField" for Access,
"RETURNING " + keyField + " INTO KeyField" for Oracle (this should work for Oracle 9.x if a trigger is setup to add the key from a sequence -- big assumption but it works)
and
"SELECT MAX(" + keyField + ") FROM " + table + " AS KeyField" for the rest (very bad yes, but its my generic attempt at workable)

Good proof of my naivety (spelling?)! I'm committed to getting the basics right, and I'm sure there are lots of assumptions I've made that will result in bugs that I need to fix. I'm not ever going to touch the advanced cases that Frans and Thomas have though.

Thanks, Paul Wilson

Saturday, January 10, 2004 9:25 AM by Paul Wilson

# re: O/R Mappers: Simple Database Features ?

Well, what about the BASIC stupid errors.

Now, I have a lesson for you: .NET framework is full of bugs.

Parameter. Let's set a value :-)

* OleDb vs. Access: you can NOT assign DateTime.Now safely - blows. You HAVE to assign DateTime.Now.ToString ();

* Oracle: you can not assign an empty string "" without also setting he length explicitly. Blows. NULL and strings WITH a length are perfect, and neither in SQL Server nor in OleDb do you ahve to set the length.

Stuff like THIS makes we want to take a big club and visit the programmers.

In the EntityBroker we work by having a "SqlContext" specific for every database - itcontains the sql generation templates, but also helper methods (formatting dates etc., in such a way that the database can deal with it). With every iteration we add new methods. Pretty often - by now - just for handling errors in the access libraries.

Saturday, January 10, 2004 9:46 AM by Thomas Tomiczek

# re: O/R Mappers: Simple Database Features ?

Oh, last saying :-)

I jsut decided to add support for "paged queries" to the EntityBroker :-)

You are right - sometimes you just want part of the result set. Now, while I can not actually stop the data to be transmitted from the SQL Server (YET - this will change once YUKON comes around and our server version moves the logic of our DAL into the database), I can make sure it never leaves the DAL.

This means fast discard, and this means:

* No queries for potential additional data (as in: tables that subobjects may have, inheritance wise)
* No transmittion to the object broker, which may be on another computer (as WE do support a remoted DAL).

Yes, makes sense in some scenarios, and is acutally half an hour of work at maximum.

Sunday, January 11, 2004 6:33 AM by Thomas Tomiczek

# re: O/R Mappers: Simple Database Features ?

Excellent Thomas! Although you could use filter the page in the database (see the SQL I posted once before that I linked to). Its actually well-performing for millions of records, and far beats bringing more data back and then dropping it.

Sunday, January 11, 2004 10:29 AM by Paul Wilson

# Finishing my own Basement

Sunday, January 11, 2004 4:05 PM by TrackBack

# re: Finishing my own Basement

Nice analogy, Paul. As someone who did carpentry (both residential and theatrical) for a living before getting into computers, I can definitely identify with that sentiment.

:-)

Sunday, January 11, 2004 4:38 PM by G. Andrew Duthie

# re: O/R Mappers: Simple Database Features ?

I am not so sure your SQL is "right on track and optimal", but it is a pretty nifty idea to run a query within a query - pretty nice. I will see that I get this put in as optimization for SQL Server :-)

Sunday, January 11, 2004 5:33 PM by Thomas Tomiczek

# re: Announcing the WilsonORMapper

Great! ObjectSpaces Lite!

Sunday, January 11, 2004 6:10 PM by Dave Foderick

# re: Finishing my own Basement

Good analogy, and while "doing it yourself" is often rewarding in both knowledge and immediate cost savings, it sometimes is more worthwhile to pay someone who can do a better job faster. But, yes, there's nothing like doing it yourself... :-)

Sunday, January 11, 2004 7:24 PM by Scott Mitchell

# O/R Mappers: Avoiding Reflection

Sunday, January 11, 2004 8:58 PM by TrackBack

# re: O/R Mappers: Avoiding Reflection

Before you start to worry about redesigning the mapping layer, I would suggest you sit down and actually stress test your code.

If it is orders of magnitude slower, perhaps a redesign/rethink is in order. However, a mapping layer, by nature, is going to add performance overheads to your system. That is the tradeoff with the mapper. Ease of use versus speed of execution.

A reflection based mapping layer is never going to come close to hand rolled sql + hand written object instantiation code.

Yes reflection is slow. No, it really isn't as slow as everyone thinks it is. (Take a look at the asp.net runtime code... theres a lot of reflection going on there)

Sunday, January 11, 2004 10:00 PM by Sean Malloy

# re: O/R Mappers: Avoiding Reflection

I designed my O/R mapping architecture so that it's essentially pluggable. The default mapper uses Reflection. Not only does it use reflection, but right now it doesn't even try to be performance friendly and cache the FieldInfo, it pulls it every time. That's something I'll fix when I start to worry about performance. The other thing I was gonna do is still use reflection, but instead of looping over the fields, generate a mapping helper class per persisted entity type with the CodeDOM. A third approach certainly could be the same thing as the IObjectHelper idea. The point is though, it's completely pluggable. You can choose what mapping technology is used for your application via the configuration file.

Sunday, January 11, 2004 10:19 PM by Drew Marsh

# re: O/R Mappers: Avoiding Reflection

Paul, while on the surface I can agree that, - to be pedantic - it might seem like a good idea to increase the performance of your OR mapper by replacing the Reflection, don't you kind of think that this is exactly the type of problem that Reflection was built to handle? It's probably not as if you are going to be handling MILLIONS of calls per minute :-) and having the Reflection cause bottlenecks.

Either way, I'll bet that the bottleneck caused by the Reflective calls are significantly less than the bottlenecks caused by the system you are replacing :-) - I.e.: hand coding.

Sunday, January 11, 2004 10:21 PM by Darren Neimke

# re: O/R Mappers: Avoiding Reflection

Implement the Data Transfer pattern. This will force you to create a 'fields' object which is in fact the object which contains the data which is persisted and which is filled by your data-access code. This fields object is 'plugged' into an entity object and the entity object then is populated with its own data. The fields object contains 'entityfield' objects which are addressable by index (int) or name (string), and contain the actual data of the field, persistence info (if you want, you can store that separately, like you have in an XML file) and some code to deal with IEditableObject (very important).

This solves your problem. CustomerEntity.CustomerID is a property which indexes into the _fields object of CustomerEntity, passing "CustomerID" or CustomerEntityFields.CustomerID as index and sets/gets _fields[index].Value.

No reflection needed, everything is taken care of by base class code like IEditableObject, rollbacks after a transaction (also very important: two autonumber entities are updated in a transaction, the first succeeds, gets the key value, second fails, the first has to roll back in memory to the old values!!).

Here's a good article which describes this feature (in a somewhat different structure, it's a java O/R mapper)
http://www.uq.net.au/~zzabergl/simpleorm/whitepaper.html

Sun's pattern pages about Data Transfer pattern:
http://java.sun.com/blueprints/corej2eepatterns/Patterns/TransferObject.html
Sun's pattern pages for J2EE:
http://java.sun.com/blueprints/corej2eepatterns/Patterns/index.html

No MS pattern pages? Well, look at the Sun pages and you know why.

Monday, January 12, 2004 3:51 AM by Frans Bouma

# re: MasterPages Template Properties in .NET v1.*

Paul,
I compared Master Pages control ASP.NET 1.x to ASP.NET 2.0 check it out:

http://ipattern.com/simpleblog/PermLink.aspx?entryid=22

Let me know what you think, Maxim

Monday, January 12, 2004 8:45 AM by Maxim V. Karpov

# re: O/R Mappers: Avoiding Reflection

Frans,

My old O/R mapping layer (non-.NET) was implemented using that pattern, but I felt like it didn't do enough for the user. I believe the user just wants to work with their own strongly typed fields. I believe that asking the user to write a ton of casting logic in their entity class' properties/methods is a pain in the butt for users. I believe the complexity should be in the O/R mapper, not in the entity objects themselves. As for the example of versioning the fields, that's easy enough to do within the mapping layer itself. Obviously the trade off is performance. There's a billion ways to skin the O/R Mapping cat. I guess it will be up to the users to choose a framework that makes the most sense to them.

Monday, January 12, 2004 12:38 PM by Drew Marsh

# re: MasterPages Template Properties in .NET v1.*

Let's say at the top-most MasterPage I want to expose the EncType of the Form so my image upload UserControl can set it and set it to accept user uploaded files. For the life of me I couldn't get FindControl to work (is string matching based on the ID the best way? what if the ID changes? if every page has to have a form, shouldn't we be able to find it by the type rather than by its string id?) My current hack in the UserControl is:

((HtmlForm)this.Parent.Parent.Parent).Enctype = "multipart/form-data"; // HACK

That _roughly_ translates to UserControl.AspxPage.Region.ContentContainer.

Depending on whether or not the UserControl is used inside of MasterPages or on a normal Page, that syntax will break.

I've tried adding a property to the top-level MasterPage so I can restrict my UserControl to the Form's EncType only:

public string FormEncType
{
get { return ((HtmlForm)Nobugform1).Enctype; }
set { ((HtmlForm)Nobugform1).Enctype = value; }
}

But I can't get a refernce to the top most page. I'm all about using the following syntax to pass just the HtmlForm into my UserControl so it can work in or out of MasterPages:

uc.TopLevelForm = Page.Form;

or

uc.TopLevelForm = Page.Master.Form;

but those don't work for various accessbility reasons.

Yes, I've tried looping through the Controls collection and looking for a Control of type HtmlForm. As of this writing, my two posts to the Asp.Net forums are still unanswered:

http://www.asp.net/Forums/ShowPost.aspx?tabindex=1&PostID=439907

Ideas? I hope its just something simple I'm overlooking.

- Ron

Monday, January 12, 2004 1:31 PM by Ron

# re: ASP.NET v2.0: Posting to Other Pages is too Limited

Ouch - this is a problem in my case:

I have a server control that used the render method exclusively to output the html. The control simply gathers user input but, since it can be used in any application, needs the ability to post the input to a "results" page in a particular application.

I found the only way to get this to work was to send down javascript with the control that sets the form's action attribute when the submit button on the control is clicked.

I also found that I had to explicitly set "enableViewStateMac" to false in the page directive on the receiving page - setting in the property dialog for the page seemed to have no effect.

So seems like a problem case is anytime a server control is created using the render method (i.e. no events associated with the rendered controls), and the page hosting the control has to post the inputs to another page in another site...

Monday, January 12, 2004 5:28 PM by Charlie Hensler

# re: MasterPages Template Properties in .NET v1.*

Andy Smith at metabuilders.com has some code that exposes the top most HtmlForm Control:

http://www.metabuilders.com/Tools/FileUpload.aspx

My this.Parent.Parent hack seems to be crude but correct. His EnsureEncType function offers a more robust way of locating the HtmlForm Control.

- Ron

Monday, January 12, 2004 11:54 PM by Ron

# re: O/R Mappers: Avoiding Reflection

What's your goal with this O/R Mapper - to figure out how things work, or are would you like to use it in a production environment?

Tuesday, January 13, 2004 1:00 PM by Jerry Dennany

# re: O/R Mappers: Avoiding Reflection

Hey Jerry:

While I am interested greatly in how things work, I am also interested in more than that. First, my site (http://www.WilsonDotNet.com) is largely an example of best practices, and O/R mapping is something that I wanted to include because I think it is often (but not always) a best practice. I am working on performance now, and let's just say that the numbers are really very good (which I'll be blogging and announcing in the next few days), so I also do plan on using this O/R mapper in "real" production systems beyond my site. That's not to say that it will suffice for all cases or everyone that needs an O/R mapper, since I won't be including all possible features.

Thanks, Paul Wilson

Tuesday, January 13, 2004 1:59 PM by Paul Wilson

# re: O/R Mappers: Avoiding Reflection

I would recommend taking a look at the architecture of two Java-based solutions, Gemstone Facets and JDO.

Facets has persistent hooks built right into the JVM; Microsoft has the capability of doing that, as there is only one CLR, and it is the ULTIMATE as far as transparent persistence goes in the JVM or CLR world. It is not, however, practical for just anyone to do, as you'd have to get access to the CLR source code.

JDO originally attempted to take the Facets direction, but the spec group got shut down by the JVM spec group, saying that there were too many JVM implementations out there to change if persistence hooks were to be included in the JVM spec. So, the JDO architecture does the next best thing: if the JVM won't supply the extra bytecodes for field interception et al, then a tool-supplied enhancer will.

It would work like this in a .NET environment. You supply the enhancer with the assemblies that contain your persistent classes, along with a persistence descriptor file, and the enhancer spits out new, modified assemblies that contain persistence capable classes. Debug information is preserved, and it's a build-time event, not a run-time event.

The upshot?
* No use of reflection at run-time,
* no requirement for public things that really shouldn't be public,
* built-in lazy loading without having to use IObjectHolder to do the lazy loading, and
* the ability to decaratively use spans (and other things like transaction isolation levels, etc).

There is already an upcoming product from Poet called FastObjects.NET that uses the enhancement strategy successfully. See http://community.fastobjects.com/community_fastobjects_net.htm for more information. I would love to see Microsoft take the persistent CLR direction, but, if not, at least go the enhancement route. The impact on the developer is that persistence is very much transparent, leaving the drudgery to the tool.

--matthew

Tuesday, January 13, 2004 6:44 PM by Matthew Adams

# re: Aspect-Oriented Programming (AOP) and Tracing

Hai,
up to this is good need more

Wednesday, January 14, 2004 7:04 AM by sreekumar vg

# re: MasterPages Template Properties in .NET v1.*

You should be able to loop through the page's controls and find the HtmlForm without any problem -- just make sure you are recursively looping through each control's child controls as well!

Thanks, Paul Wilson

Wednesday, January 14, 2004 8:05 AM by Paul Wilson

# O/R Mappers: Maximum Performance

Wednesday, January 14, 2004 3:53 PM by TrackBack

# O/R Mappers: Maximum Performance

Wednesday, January 14, 2004 3:53 PM by TrackBack

# Announcing the WilsonORMapper

Wednesday, January 14, 2004 3:58 PM by TrackBack

# re: O/R Mappers: Avoiding Reflection

All right, I've got my performance up and comparable to DataSets now, beating them in some cases.

Later, Paul Wilson

Wednesday, January 14, 2004 4:21 PM by Paul Wilson

# re: O/R Mappers: Maximum Performance

Well we all now know to ignore my posts about how costly reflection is :) Nice work Paul! I enjoyed reading how you went about speeding things up. As many people noted it was probably "fast enough" before, but, hey a little extra speed certainly can't hurt!

Wednesday, January 14, 2004 4:53 PM by Steve

# So reflection isn't as bad as I made it out to be

Wednesday, January 14, 2004 5:08 PM by TrackBack

# So reflection isn't as bad as I made it out to be

Wednesday, January 14, 2004 5:08 PM by TrackBack

# re: O/R Mappers: Maximum Performance

WOR Mapper

Wednesday, January 14, 2004 5:21 PM by AndrewSeven

# re: O/R Mappers: Maximum Performance

Cool stuff...

Wednesday, January 14, 2004 8:55 PM by Jerry Dennany

# re: O/R Mappers: Maximum Performance

could WilsonORMapper recognise dirty flag of property?

eg:
if i wanna update name of product,i will write:
Product product = New Product;
product.id = "001";
product.name = "example";

Global.Manager.PersistChanges(product);

i hope only the name of it can be update and don't affect other property of product.

the dynamic sql will be:
update product set name = 'example' where id = '001'

does WilsonORMapper work like this?
vs.net in my computer does not work now,so i can't run your demo.


Wednesday, January 14, 2004 10:51 PM by progame

# re: O/R Mappers: Maximum Performance

Hi Program:

No. Right now at least it updates everything every time, although that would be relatively easy to change since all the state is already being tracked. So I may implement it at some time, although its not very high on my list right now -- but you could create your own custom version to do just that. I'm curious, I've seen a few people note this feature of some O/R mappers, but I don't really get why it matters much, at least in most cases -- can you share? The traditional stored procedure approach for updates certainly did not in most cases make such targeted updates, and its that approach that is my personal background, so I'm still learning other approaches.

Thanks, Paul Wilson

Wednesday, January 14, 2004 11:04 PM by Paul Wilson

# re: O/R Mappers: Maximum Performance

this feature is very important to me.
eg:i have a form to edit product,but the price can't be edited here,it will be built by many factor. if i edit the product information in client A,and maybe it's price be modified by client B just then. so i must post these dirty values to database, not involve "price".

Wednesday, January 14, 2004 11:27 PM by progame

# re: O/R Mappers: Maximum Performance

considering the concurrence,a O/R Mapper also must support increment operation.
like this:update product set quanity = quantity + 10 where id = '001'
otherwise the consistency will by destroyed.

Wednesday, January 14, 2004 11:35 PM by progame

# re: O/R Mappers: Maximum Performance

when WilsonORMapper begin tracking the entity instance, what will be recorded?
and when it release this tracking?

Manager class must be static?

i hope the entity class will be "pure data class" for portability and the manager class will be stateless for performance scalability.

but lazy-loading require the manager class's life-cycle be continued, this is a conflict for my O/R Mapper's thought.

Wednesday, January 14, 2004 11:53 PM by progame

# re: O/R Mappers: Maximum Performance

Well done, Paul. But can you compare performance of dataset to WOR? Do they offer same functionality? And for me crucial question: can it be used for real-world apps? You know, that ones with some bussiness logic in SPs, not with just simple selects... Wouldn't it be better, when WOR could generate SPs and developer would be able to modify them?

Good luck,
<a href="http://blog.vyvojar.cz/radim/">Radim Hampel</a>

Thursday, January 15, 2004 3:44 AM by Radim Hampel

# Paul Wilson's mapper

Thursday, January 15, 2004 5:51 AM by TrackBack

# re: O/R Mappers: Maximum Performance

Hi Radim:

DataSets and custom object collections are certainly not interchangeable in all situations, but there are many cases where a user of an O/R mapper simply wants to retrieve a collection and display it for presentation, which is very much like using a DataSet. On the other hand, once you go beyond that simple display of data, and start implementing business logic in your custom classes and then proceed to the actual persistence, that's where an O/R mapper certainly has the upper hand. Can it be used for real-world apps? Most certainly it can. Of course, real-world apps vary, so it may not be the best thing in every case, but there are many many applications that can easily benefit from O/R mappers, and the fact that they are so common in the Java world proves that. As for stored procedures with business logic, I already support using stored procs for inserts, updates, and deletes, which is where there often is a real need to have integrity checks and denormalization and simple business logic. I will probably be adding support for select stored procedures too, but while that may be nice in some situations, it will also mean a loss of basic search, sort, and paging functionality that comes for free with the regular type of O/R mapping. As for generating stored procedures, there are already countless code generators out there, with CodeSmith being my recommendation, so I don't really see the need, nor is that what O/R mappers are really about.

Thanks, Paul Wilson

Thursday, January 15, 2004 6:39 AM by Paul Wilson

# re: O/R Mappers: Maximum Performance

Hi Progame:

The entities are tracked automatically when they are materialized from the database, or when a new entity is created using the GetObject method, or when an entity is passed to the StartTracking method. The tracking is released by a timer that wakes up periodically (default is 5 minutes, but its configurable) and removes all instances that correspond to entities that have been garbage collected and have not been accessed for some time (also configurable, defaults to 0, but necessary for server based systems that won't retain weak references). The manager class is not static -- you can create multiple instances of it to handle different databases simultaneously, as well as you should be able to use it in remoting situations. The entity classes do not have to have any structure, i.e. there is no required base class, although implementing the optional IObjectHelper interface will give you better performance. As for lazy loading, you can specify to not use lazy loading for child collections, which would be required for serialization cases, like remoting, but that's not really related to the manager tracking object state for other reasons.

By the way, I agree not having "quanity = quantity + 10 where id = '001'" is something less than desirable, but this is where you can use a stored procedure with my O/R mapper, or you could be using triggers which may actually make more sense for pure data integrity across all applications. I may try to add that functionality as well, but I haven't given it much thought yet since stored procs and triggers are both viable solutions that already exist.

Thanks, Paul Wilson

Thursday, January 15, 2004 6:55 AM by Paul Wilson

# re: O/R Mappers: Maximum Performance

can this tracking recognise any change of property? or only compare property's value?

eg:
product.code = "001";
product.name = "name";
....starttracking(product);
product.name = "name";
...persistencechange(product);
....

in this case,wor will recognise this change?

Thursday, January 15, 2004 7:27 AM by progame

# re: O/R Mappers: Maximum Performance

It doesn't have an internal event that is triggered when a property changes, since the entity can be any class with no special base class required. It can compare the values that you send when PersistChanges is called (although it does not right now) with what was sent originally with StartTracking. Currently this means that you can call GetObjectState to check for Updated (i.e. IsDirty) and you can also call CancelChanges.

Later, Paul Wilson

Thursday, January 15, 2004 7:57 AM by Paul Wilson

# re: O/R Mappers: Maximum Performance

i want to ge dirty flag of property,instead of class. although the "name" property value not changed,but it's dirty now. i hope the mappers can recognise this change in spite of assignment of the same value.

Thursday, January 15, 2004 8:36 AM by progame

# re: O/R Mappers: Maximum Performance

i want to recognise this change, do not need invoke any event.

Thursday, January 15, 2004 8:38 AM by progame

# re: O/R Mappers: Maximum Performance

btw: can you change font color of your blog? blue is not comfortable :(

Thursday, January 15, 2004 8:47 AM by progame

# re: O/R Mappers: Maximum Performance

I see now. Mine would only know if the class was dirty, and only because a value differed and not simply because it was set again to the same thing. You could certainly code that type of stuff in a mapper, but it would require either a significant base class, and/or a new dynamically compiled class that inherits from the original. Some of the more advanced mappers may have this functionality already, but I don't think it sounds like the direction I want to go.

Sorry you don't like blue -- what if it was <font color=navy>Navy</font> instead of <font color=blue>Blue</font>?

Thursday, January 15, 2004 8:55 AM by Paul Wilson

# re: O/R Mappers: Maximum Performance

yeah. the dynamic proxy in java can do that works. navy is better than blue,but i think black is the best. sorry for my requirement.

Thursday, January 15, 2004 9:03 PM by progame

# re: SOA Is Not New -- Its Just Easier and "In"

Paul, When I first started hearing all the hype surrounding SOA I thought that I must be missing something since it sounded just like a lot of the principles that we use everyday. It took some reading and investigation to realize that there really isn't that much new with SOA. As you mentioned there is new ways to build them, as well as new standards to ensure we build them in an interoperable way, but most of the principles are things we've been doing.
- Steve

Monday, January 19, 2004 8:53 AM by Steve

# Teens

It is a hot new website for teens.

Tuesday, January 20, 2004 6:38 PM by Jerome

# re: ORM

Wednesday, January 21, 2004 10:28 AM by TrackBack

# re: Moving from Wise to VS.NET Deployment

VS.NET is ok if you've got nothing custom that you have to do, such as specialized screens to collect information about installing a database, for example. You can get around this by writing cutsom applications to assist your install, but then you lose the 'look and feel' that customers expect of your install.
Sorry about your problems with Wise. My observations have been that Wise presents more problems at design time in the IDE, and Installshield presents more runtime problems. Of course, this is only one datapoint.

I'm not impressed with VS.NET deployment solutions for anything but the most basic of installs - if that's what you've got, then go for it!

I'm working in InstallShield DevStudio 9 right now, writing an install. It's not bad, but it is also quirky. Once you figure out the quirks, you can get around them. The problem is then that you get strange code to fix quirks from 3 versions ago!

Wednesday, January 21, 2004 3:15 PM by Jerry Dennany

# re: Moving from Wise to VS.NET Deployment

Another thing that I forgot to mention - by changing the product code and upgrade code affects your ability to use windows installer for patching or upgrading your product in future releases. While changing the product code in development may be ok, it's not a good idea to do this in the field.

Wednesday, January 21, 2004 3:38 PM by Jerry Dennany

# re: Moving from Wise to VS.NET Deployment

All the docs say that changing the version and product code should be done, and I tested that they were required in order to get old versions auto-removed. Actually, try to change the version inside the IDE and will ask if it can also change the product code (and package code), and it warns you that you should do so. The upgrade code, however, is clearly marked in the docs as not something that should be changed, and I have therefore not changed it. Is my understanding correct, or is there something else?

Wednesday, January 21, 2004 3:43 PM by Paul Wilson

# re: Moving from Wise to VS.NET Deployment

Ok, I should clarify - I was kinda vague, but this is a pretty involved topic that not even the windows installer documentation is very clear on. For example, the guidance on when to change the product code goes something like: A Major Upgrade is "a comprehensive update of the product that warrants a change in the ProductCode property."

Changing the product code is required to get the experience you are looking for, ie, a removal of the old product and an install of the new.

However, this is not always what you might want. For example, if you were issuing a patch or a minor revision, changing the product code might not be a good idea.

Again, this is an involved topic, and as long as what you have works the way you want and expect, I really wouldn't sweat the small stuff. Other than upgrade behavior, changing these GUIDs shouldn't affect you.

Wednesday, January 21, 2004 3:57 PM by Jerry Dennany

# re: Moving from Wise to VS.NET Deployment

I've really struggled with finding the right installation package. I'm still using VS.NET, mainly because I haven't found an affordable package that I believe will do the things I want it to. I'm mainly building installations for web applications, and I just can't justify buying Install Shield or Wise or whatever, when they don't really seem to offer any better support for web apps than VS.NET does. At least as far as I can tell, maybe someone else has better information than I do. (This post describes some of the things I'm looking for in an installation package: http://www.coolbits.nu/238.aspx.
For my latest project, I wrote a VB.NET application that acts as a wizard for installing my ASP.NET web application. It doesn't do everything I wanted it to do, but it isn't too bad.

Wednesday, January 21, 2004 5:54 PM by Avonelle Lovhaug

# re: Moving from Wise to VS.NET Deployment

I do not like vs.net or Wise... I have been using nsishttp://nsis.sourceforge.net/site/Home.2.0.html

Thursday, January 22, 2004 10:21 AM by bc

# re: .NET v2.0: Serial Port Communications Finally Arrives

is the class downloadable somewhere?

Thursday, January 22, 2004 1:32 PM by ray

# re: .NET v2.0: Serial Port Communications Finally Arrives

.NET v2.0 is in private alpha right now, it will be in public beta this spring. The docs for the SerialPort class can be found here:
http://longhorn.msdn.microsoft.com/lhsdk/ref/ns/system.io.ports/c/serialport/serialport.aspx

Thursday, January 22, 2004 2:39 PM by Paul Wilson

# re: Moving from Wise to VS.NET Deployment

I use Installshield with Windows Installer every day, pretty much. It's honestly not that hard to use once you get used to it/familiar with it.

If you're curious how VS.Net does the GAC actions and what have you in the MSI, build an MSI, and then crack it open in Wise. You could probably even rip the custom action out of the MSI and use it later if you wanted to. Not sure though, never tried opening a VS MSI in Installshield.

--brian

Thursday, January 22, 2004 6:39 PM by Brian Desmond

# re: Running .NET WinForm Applications on Citrix

Hi,

I'm looking at building a win form app running on citrix for one of my client. Thank you for the heads up. More info regarding performace once you sort out your 3rd party control problems would be great.

Clarke

Friday, January 23, 2004 4:24 PM by Clarke

# re: Sorting and Paging Recordsets in SQL Server

See also Aaron Bertrand's comprehensive survey of techniques for paging a result set in SQLServer:

http://www.aspfaq.com/show.asp?id=2120

Friday, January 23, 2004 5:42 PM by David Portas

# re: Running .NET WinForm Applications on Citrix

We are just starting to look at some .NET in a Citrix MetaFrame environment, though none of it is WinForms. As you pointed out, it is really difficult to get clear answers on this, isn't it?

Friday, January 23, 2004 11:28 PM by Jerry Dennany

# Still can't find everything on the Internet...

Friday, January 23, 2004 11:47 PM by TrackBack

# re: Running .NET WinForm Applications on Citrix

Loading a DataSet while it's bound to a DataGrid, is much slower than loading it and then bind it. That's probably the issue you are running into.



Sunday, January 25, 2004 6:07 AM by Andres Aguiar

# re: Moving from Wise to VS.NET Deployment


We use SMS Installer. It was based on an old version of Wise and seems to work very well.

A bit strange but we install 40-50 systems with this.

We are also going to be looking at the latest version of Wise.

Monday, January 26, 2004 4:48 PM by Blair Stephenson

# WilsonORMapper now tested with Oracle

Tuesday, January 27, 2004 3:25 PM by TrackBack

# re: WilsonORMapper now tested with Oracle

You're da man!! - I mean it!! :) - Why do we need ObjectSpaces in the first place?

Tuesday, January 27, 2004 5:53 PM by Marc Hoeppner

# re: WilsonORMapper now tested with Oracle

Hopefully, ObjectSpace team will be challaged by one man like you Paul!

Tuesday, January 27, 2004 9:21 PM by Maxim V. Karpov

# Signal-to-Noise #5

Thursday, January 29, 2004 6:59 AM by TrackBack

# re: Running .NET WinForm Applications on Citrix

I just by happenstance noticed this blog. My company is, from what I understand, Citrix's largest deployment of a server farm. I don't know what the count is but I know our server farm is 100+ running citrix and of those 25 boxes will be used for an application we are developing using .NET winforms also (using several NLB App Servers, SQL 2000 and remoting). The application is basically a CRM app with a bunch of other fluff. We will be starting up some System Testing in a couple weeks across a couple servers with about 20 testers. Within a couple months our training environment will be handling about 300+ users and our final deployment will be around 3000 users (1200+ simultaneous) across around 25 servers slated for june. I'd be happy to share my experience with you guys if you'd like (unofficially of course).

I was in the same boat as you guys when we were looking for any real world, large scale, .NET winform citrix deployments but came up with Nill and we've had to rely on the fact that they're both supported environments for .NET. We also have a third party grid that I'll now keep a close eye on hehe (infragistics).

Regards,

Josh

Thursday, January 29, 2004 12:18 PM by Josh

# re: Running .NET WinForm Applications on Citrix

Hey Josh:

I don't know if we have a 100 yet, but I know we will by the time this project is rolled out to everyone, since this project alone will have over 50 citrix boxes when done, on top of quite a few we already have. I'd love to hear (unofficially drop me an email) more about your experiences since it sounds like you've gotten farther than us. BTW, Infragistics is what we're using too -- the leak was in an early version of 2.0, the fix was out a long time ago, and hopefully everything is still good in 3.0. We do know that 3.0 performs overall much better than 2.0, but we're still talking about using a custom version since we have the source and have already found some problem areas. I'm in Atlanta -- where are you?

Thursday, January 29, 2004 12:47 PM by Paul Wilson

# WilsonORMapper works well with MySQL

Thursday, January 29, 2004 4:02 PM by TrackBack

# re: WilsonORMapper works well with MySQL

::If O/R mappers are to support multiple
::database platforms, then how can we honestly
::ever expect the mappings to only ever be
::specified once in the code as attributes?

Paul, this is ignorant AND arrogant AND wrong.

It just works.

In the EntityBroker we specify mapping information in code.

But this is not database dependant.

Basically, a string field is annotated as "string, variable length, max 50 chars". Whatever SQL is generated out of this is NOT part of the attribute at all.

On top of this the mapping contains table name and field name - which, again, are NOT database specific - using "'" instead of "[" for mapping is not what the mapping file does - this is what the database adapter should do.

We DO use attributes, and we DO have customers running one assembly with the attibutes against Oracle and MS SQL, and it just works - so, you CAN do it, unless you are totally idiotic with the data you put into the database.

That said - I should really sit down half a day and get MySQL supported :-)

What native interface library should one use for this?

Thursday, January 29, 2004 4:21 PM by Thomas Tomiczek

# re: WilsonORMapper works well with MySQL

As soon as you start to use joins you'll fail with ANSI-sql.

If I would just use CRUD stuff, I could generate my sql with 60 lines of code, maybe less. However the various aspects of non-CRUD sql demand serious customization.

For example this Sqlserver query (pseudocode)
UPDATE Table
Set field = value
FROM othertable
WHERE Othertable.field2 = table.field2

No can do on oracle, you need a subquery construct for that.

Delete FROM table FRom Table2 where Table1.foo = Table2.foo

Same thing.

These situations are the hard part.

With the release of my Adapter template set yesterday, it's now possible to fetch an entity from oracle and save it into sqlserver, including data contained in the object, and vice versa, or develop 1 system and target oracle and sqlserver, depending on what the customer wants.

This however ALWAYS database specific details, how else would a boolean field be stored in for example oracle? Varchar(1)? NUMBER (1)? You tell me.

You do a good job developing your tool, but you do a bad job getting the O/R mapping message accros. You tell the people it's so simple and so easy, but it isn't. Not by far.

Thursday, January 29, 2004 4:59 PM by Frans Bouma

# re: WilsonORMapper works well with MySQL

To be honest, it gets annoying.

You try to sell a story that writing an O/R mapper is so easy, that supporting a truckload of databases is like flipping a switch, but your mapper is severily crippled and because of that can 'support' multiple databases without a lot of effort.

This obviously raises questions like: "Why can paul wilson write a mapper that supports a lot of databases while others have a hard time supporting multiple databases?". The answer to that is: because if you just want simple selects and simple CRUD operations on a table, you don't need sophisticated code. However reality isn't served with simple crud and simple selects on a table.

Still, you blog continuously about how easy it was/is to support all these databases. You don't tell the people that you needed custom code for Oracle's sequences for example, or how you would work with a REF CURSOR stored proc output on oracle vs the stored proc output in sqlserver.

I appreciate your work but I'm really starting to get annoyed by the way you try to tell the world how easy it was to write your tool, which indirectly says that others apparently are doing something wrong. You even say it in your blog here:
"Yes, I know I'm just talking about the simple CRUD operations, but apparently I've guessed correctly that this really is all many people care about, judging by the responses I have received. "
How wrong can you possibly be.

Writing a good, useful O/R mapper targeting a lot of databases is hard, not easy. Supporting a database type in FULL is very hard, it requires a lot of custom code per database, because every database type has very specific SQL syntaxis for a lot of constructs you run into with an SQL generation engine, or even with the mapping of types to .NET types, to name a few silly things.

Telling your readers it's a walk in the park as you tend to do is misleading. Sure, you don't compete with 'the big guys' as you said, that however isn't what I read in this blog as it seems according to you that a large group of people is only looking for simple CRUD.

Thursday, January 29, 2004 5:51 PM by Frans Bouma

# re: WilsonORMapper works well with MySQL

Thursday, January 29, 2004 10:09 PM by Paul Wilson

# re: WilsonORMapper works well with MySQL

Thursday, January 29, 2004 10:09 PM by TrackBack

# re: WilsonORMapper, EntityBroker, and LLBLGenPro

Look at it this way. Without Paul's O/R mapper, I would have never even considered learning about them or using them in my business. Once I am able to understand the basics, I may find that the benefits are worthwhile and end up purchasing a product like Entity Broker. There is very little info about O/R out there and only by looking at Paul's 'simple' code have I been able to appreciate its application.

Thursday, January 29, 2004 10:26 PM by Matthew Knapp

# re: WilsonORMapper, EntityBroker, and LLBLGenPro

if I can't walk through the code within a day or two and understand exactly what is going on and how much work it would be to port to my application, I won't even consider it. With limited resources and time, I can't spend 2 weeks researching how to use a 'full-featured' mega-application. For people like me, KISS!

Thursday, January 29, 2004 10:32 PM by Matthew Knapp

# re: WilsonORMapper, EntityBroker, and LLBLGenPro

Paul, Keep up the great work. Keep in mind that Frans and Thomas are in a fight for their lives. They're about to become MS competitors. Yikes! Your O/R Mapper is just the thing that many developers need to help them understand what an O/R Mapper is, and how it can be implemented. The thing I LOVE about your mapper is its simplicity. You've done a killer job, as have Frans and Thomas. I hope you all keep it up!

Thursday, January 29, 2004 10:54 PM by Steve

# re: Running .NET WinForm Applications on Citrix


Hi Paul,

I work for a large health insurance company and I'm actually in Raliegh NC but I run solo down here. Our core group of developers is located just outside Pittsburgh PA. I'd be happy to shoot you off some details and maybe we can keep in touch and share some experiences.

We're actually in the first phases of the project and we're starting off system testing on one of our citrix boxes at the end of next week. To be honest I'm expecting more problems from our app then from citrix :) but we do have a lot of unknowns. At the same time we deploy the application they're updating our citrix farm from NT/Citrix to Windows Server 2003 and Citrix Metaframe XP so they're anticipating better performance and being able to fit more users on one box but there is a lot of unkowns and risks because of those unknowns IMO.

I think the project is a very typical corportate project that starts out with the best intentions/timelines but is turning into a test of stamina, gotchas, and "wish I would have known/done that" but I'm having a good time with it outside of the extra hours and I'm learning a lot more then I ever did in my lab and building small asp.net sites or the cram sessions at VS Live(although those are great).

I'm far from a newbie but I traded in my servers and testing labs for a family recently so I haven't been keeping up on things as much as I used to but I'd be happy to share my experiences and planning (what's planning hehe) with deploying a .Net solution on Citrix with you. There are likely other developers out there in similar circumstances looking for info so if we could somehow help share the knowledge that would be great too.

Well another long night... heading home now.. I'll shoot you off an email.

Kindest Regards,
Josh

Thursday, January 29, 2004 10:54 PM by Josh

# re: WilsonORMapper, EntityBroker, and LLBLGenPro

Keep up the good work and don't worry about them, lot's of people appreciate what you are doing.

-James

Thursday, January 29, 2004 11:39 PM by James Avery

# re: WilsonORMapper, EntityBroker, and LLBLGenPro

Paul: I agree with the above comments. Great learning tool, and I'm really impressed with your enhancement turnaround. When I was looking at O/R tools I had cost, support, and source code in mind. When I saw compliance with ObjectSpaces I was sold.

Friday, January 30, 2004 12:34 AM by Mike Chean

# re: WilsonORMapper, EntityBroker, and LLBLGenPro

Well said! - I couldn't agree more that many applications out there will do fine using a simple O/R mapper without COM+ support and without advanced caching support for distribute systems. Heck, right now people manage to get by <gasp>_without_</gasp> such a tool, even if it hurts at time. I still think there is (a lot) of room for simple O/R mappers and also a necessity to have more complex ones. Preferably it would be a single tool, but I doubt that this will happen. Paul, you have done a fantastic job, as have Frans and Thomas, and I'd love to see more of it.

Friday, January 30, 2004 3:24 AM by Marc Hoeppner

# re: WilsonORMapper, EntityBroker, and LLBLGenPro

"And that's what I don't get -- why are so many O/R vendors totally ignoring the simple users? "
How simple do you want it to get, Paul? :) Point, click, go, start coding. I can't make it easier than that.

The problem with simple users is that they do not exist. Let me illustrate that with an example.

In 2002 I wrote LLBLGen, which is a stored proc/call class generator for Sqlserver. It generates simple CRUD stuff and some advanced selects. In other words: pretty basic but enough for a lot of situations. "Enough for simple users/usage" Right? Well... no. You see, only the very very small, home-brewn projects are requiring very simple data-access. You very fast run into aspects like "Get all records X which have a record Y where Y.foo = 10". Is that simple stuff also? No. Most basic tools for simple stuff can't do that. It's a simple query though.

The problem thus is: if you offer a tool, people start using it, but it's very very likely that the user runs into its limitations sooner or later. With a simple tool, it will be 'sooner', with an advanced tool it will be 'later' or probably 'never'. Does the user knows this up front? You might think he does, but I think he doesn't in a lot of situations and according to the big pile of email requesting flexible where clauses in the simple LLBLGen 1.x tool tells me I'm right.

Like I told you before, your code is ok, your tool is ok and you did a good job writing it. It's your marketing skills that need some perfection :) For me you didn't have to write an article and mention my tools name, but it's appreciated very much of course. For me, it's important that you understand that what YOU say, or better: don't say, is read by a very very big audience who think and know YOU are the man to listen to. In that light it is important to understand that if you paint an image of the reality which looks very simple and easy, it might misinform your readers, although I don't think that's your intention.

I hope you see my point. There will always be room for tools which simply do very simple things, because they can't do a lot, but what they can they do well. Like I said earlier, that's fine by me. You obviously have had great fun programming your tool and that's a great thing to have in life, so I'd be the last person to tell you to quit (not that you would do that if I said so ;)). I hope you now understand why I was annoyed, again: not because of the presence of your tool, but about the wrong image you created of reality.

Friday, January 30, 2004 3:57 AM by Frans Bouma

# re: WilsonORMapper, EntityBroker, and LLBLGenPro

And what I'd like to know (and please provide me with an example) is who I tortured with a hostile attitude?

My native language isn't English, it's Dutch. We have different language constructs to be 'polite' and when I write a sentence it might sound rude, although I really don't know that, simply because I'm not a native English speaker. (English written by Dutch is said to be less polite, due to the sentence constructs).

I always try to be reasonable, even if some people are not that polite to me or very stubborn. However you mention in your blog I apparently have a hostile attitude, and I'd like to see proof of that or examples.

Friday, January 30, 2004 4:05 AM by Frans Bouma

# Hostile attitudes

Friday, January 30, 2004 6:11 AM by TrackBack

# re: WilsonORMapper, EntityBroker, and LLBLGenPro

I know very little about O/R mappers, definitely not enough to debate the topic but I do know about having professional courtesy which the two of you seem to have very little of. Whether it be because English is not your first language or you really just don't care I don't know. It's very clear what both of your feelings are concerning the WilsonORMapper from many of your threads in the ASP.Net forums, many of which I and others have considered borderline hostile and felt the mods should have locked (and there are threads wondering why the mods let this go on). Now to come trolling around his blog basically looking to pick a fight is pretty pathetic. If you don't find Paul's contributions valuable or his product sub-par that’s fine but it's obvious that others do and despite your guys's constant barrage of "criticism" which boils down to "yours sucks mine is better" Paul has stayed very professional and I applaud him for that. If any of my developers had provided "Criticism" in the manner in which you guys do you'd have been out the door a long time ago. And as for your products they sound like excellent full featured products and I hope your businesses are successful but I can only say as developer if I was looking for a O/R mapper and witnessed this kind of behavior I’d think twice and likely just wait for MS.

Regards,

Josh

Friday, January 30, 2004 10:40 AM by Josh

# re: WilsonORMapper, EntityBroker, and LLBLGenPro

I agree completely with Josh's comment above. I have been following the .Net O/R community since its inception and have to say that the behaviour of several prominent individuals in the community is extemely unprofessional and unproductive. Their behaviour is quite clearly nothing to do with any language barrier or cultural differences; it is a simple lack of professional courtesy that does nothing to enhance the reputation of those involved.

I evaluated several O/R products for my company and although I was fairly impressed technically with both Frans and Thomas' products, I was put off by their behaviour in a number of public forums. I was not comfortable recommending products where the main public representatives of the companies were given to rudeness, arrogance and ad hominem attacks on perceived critics and
competitors. Real software companies do not allow their staff to mouth off at potential
customers in this way.

This is all IMHO of course, but a quick browse of the relevant google groups will show many
examples of the kind of behaviour that has put off myself and many others.

I think the fact that this is being discussed at all is more sad than anything else because Frans and Thomas have both made great contributions to the disussion and development of O/R mapping in .Net, and would perhaps be taken more seriously if they could turn off the aggression and insults when trying to promote their products.

Friday, January 30, 2004 11:49 AM by Craig

# re: .NET v2.0: Serial Port Communications Finally Arrives

can this work in VS 2002,where can i download this

Friday, January 30, 2004 2:44 PM by sibish

# re: .NET v2.0: Serial Port Communications Finally Arrives

Once again, this is part of .NET v2.0, which is not publicly available yet, and no it will not work in VS2002 anymore than .NET v1.1 will. There are third party serial port libraries, both free and commercial, if you google on them.

Friday, January 30, 2004 2:56 PM by Paul Wilson

# re: Mixing Forms and Windows Security in ASP.NET

Dang! That was fast! I haven't even had the chance to blog about it yet!

TTFN - Kent

Friday, January 30, 2004 5:40 PM by Kent Sharkey

# re: WilsonORMapper, EntityBroker, and LLBLGenPro

which will be supported as a ORMapper?
CRUD is the base function, and must support a object query feature.

as Paul said, simple is the best, but database independence is very important, and this is very easy to implement for CRUD but not for QUERY.

i think of the query design for a long time, and i find that it's very easy for a developer to learn a object query language. this learning maybe only spend a few hours. and the query script is more understandable than others:
1?select name from employee where department.name like '%s%'

2?List lst = cv.addClass("employee").addSelect("name").addFilter(LIKECRITERIA("name","s")).execute().getList();

if somebody also be interested in query design, please see my design in my blog:
http://progame.blogger.cn

Friday, January 30, 2004 9:34 PM by progame

# re: Looking for ASP.NET Article Ideas

An article on automated testing procedures for asp.net would be nice.

Sunday, February 01, 2004 1:32 AM by M. Keith Warren

# Signal-to-Noise #5

Sunday, February 01, 2004 4:27 AM by TrackBack

# re: Mixing Forms and Windows Security in ASP.NET

Thanks for this article. We've been trying to do figure out a way to do this where I work for quite some time.

Sunday, February 01, 2004 2:59 PM by Tom

# re: Have You Seen My Website Yet?

hey i just started it!!!!please check it out i would really appreciate it
thanx and im azn



RYCE RYDER 4---->

Sunday, February 01, 2004 9:08 PM by Tony

# re: Mixing Forms and Windows Security in ASP.NET

See http://weblogs.asp.net/pwilson/archive/2004/02/02/66155.aspx for additional details on how to combine Windows roles for authorization as well.

Monday, February 02, 2004 9:55 AM by Paul Wilson

# re: Mixing Forms and Windows Security in ASP.NET

Monday, February 02, 2004 9:55 AM by TrackBack

# re: Mixing Forms and Windows Security in ASP.NET

thanks. it works great.

Monday, February 02, 2004 3:53 PM by Sunjay

# re: More Forms and Windows Security in ASP.NET

Thanks for the update to an already nice job.

Monday, February 02, 2004 3:54 PM by Tom

# re: O/R Mappers: Maximum Performance

Did you profile using a tool like NProf (http://nprof.sourceforge.net ) ? I did some simple benchmarks with LLBLGen Pro today compared to datasets (the 2 different template sets and a dataset compared together) and found some serious bottlenecks using the profiler in places I never thought of as slow. I'm now close to 45% off the pace of a dataset when loading lots of rows into a collection (200 times 100 rows: adapter templates: 0.98 seconds, dataset: 0.54 seconds), haven't checked single object instances yet, which should indeed be a lot faster than datasets.

I'd suggest to profile some code (if you haven't done so ;)) with teh profiler to check out the bottlenecks.

Mine are located in GetOrdinal of the datareader (I can't remove this, because I want to stay flexible with fieldname-fieldpos relations) and IsDBNull, also a datareader member. IsDBNull and GetOrdinal are not used by the SqlDataAdapter of course to fill the dataset, so some bottlenecks will stay. Nevertheless what surprised me was the speed of the Sql generator, which I thought would probably be a bottleneck but that was totally not the case.

Some interesting things I found out:
- switch(myStringVar)
{
case "foo":
..
case "bla":
...
}
will be converted to a static hashtable by the C# compiler.
- sortedlists are extremely slow compared to hashtables. If you can use hashtables, do not use sortedlists instead (I thought it wouldn't matter... well... it did ;))

Monday, February 02, 2004 4:51 PM by Frans Bouma

# re: O/R Mappers: Maximum Performance

Hey Frans:

My performance tuning so far has just been lots of hand placed timing statements where I gradually drill down until I find the lines that are taking longer than expected. Its time consuming, but I've actually found it works wonders in the hands of someone that has experience, like you or I. I tried to play with the demo of DevPartner Studio, but it returns way too many false positives to be of much use for me. I may try NProf though -- I've seen the blogs about it, and your results do sound intriguing.

Thanks, Paul

Monday, February 02, 2004 7:15 PM by Paul Wilson

# More Forms and Windows Security in ASP.NET

Monday, February 02, 2004 9:25 PM by TrackBack

# More Forms and Windows Security in ASP.NET

Monday, February 02, 2004 9:26 PM by TrackBack

# re: .NET v2.0: Serial Port Communications Finally Arrives

This class is based on the work done documented @ http://www.gotdotnet.com/Community/UserSamples/Details.aspx?SampleGuid=b06e30f9-1301-4cc6-ac14-dfe325097c69

that will work with VS2002 & VS2003 after some tweaks!

Monday, February 02, 2004 9:54 PM by Nguyen Ly

# re: .NET v2.0: FTP Classes are now Provided

Damn, I saw your post and was relieved that they were finally adding that so I wouldn't have to create my own. Unfortunately I need it now rather than later, so I'll have to build my own anyways.

Wednesday, February 04, 2004 10:11 AM by Jamie

# Global .NET Memory Performance Counters Do NOT Work

Wednesday, February 04, 2004 10:18 PM by TrackBack

# Running .NET WinForm Applications on Citrix

Wednesday, February 04, 2004 10:20 PM by TrackBack

# re: Global .NET Memory Performance Counters Do NOT Work

Have you put in an incident into Microsoft Support re: the perf counters?

And, thanks for blazing the way in Citrix. We may be doing this kind of stuff in the future, and I'd rather see you feel the pain than me!

Wednesday, February 04, 2004 11:45 PM by Jerry Dennany

# re: Global .NET Memory Performance Counters Do NOT Work

>And why is there another 3MB that is lost in total system available memory that isn't reflected in the .net memory performance counters for that process?

What is "total system availabale memory"? There's no such counter in perfmon. Are you looking at Available Physical Memory in task manager?

Wednesday, February 04, 2004 11:48 PM by Pavel Lebedinsky

# re: Global .NET Memory Performance Counters Do NOT Work

"...memory is low when you only have 32MB left on a 4GB server" - and why exaclty would you want to have 4GB of RAM and only use half of it? A production server should have zero available memory under normal operation. If it doesn't than it's wasting your resources.

Thursday, February 05, 2004 1:14 AM by Jerry Pisk

# re: Global .NET Memory Performance Counters Do NOT Work

>A production server should have zero available memory under normal operation.

If you have zero available (physical) memory on a production server it's definitely not normal. While some memory hungry apps like SQL Server tend to consume most of the available memory, they usually leave at least 10 MB for other processes.

If a server consistently has less than 10 MB of physical memory available it alsmost always means lots of paging and horrible performance as a result.

Thursday, February 05, 2004 2:01 AM by Pavel Lebedinsky

# re: Global .NET Memory Performance Counters Do NOT Work

I'm referring to the regular memory performance counter for total available memory when I mention total system available memory. That seems to reflect just available RAM, and all of it, which may not always be the best number ideally, but its certainly a far better number than the .net global one that simply doesn't work.

Thursday, February 05, 2004 6:33 AM by Paul Wilson

# re: Global .NET Memory Performance Counters Do NOT Work

I don't know what causes the behavior that you describe, but I just wanted to say that counters like Memory\Available MBytes are not the best way to measure memory usage. Available physical memory can jump up and down depending on how the OS feels.

If you want to measure how much memory a single process has allocated, use Process\Private Bytes. For global memory usage, use Memory\Committed Bytes.

Friday, February 06, 2004 2:30 AM by Pavel Lebedinsky

# re: Pocket PC Development with VS.NET 2003

While the development is nice, installation of your developed programs on a PocketPC is much harder than it should be. I have spent about 3 times as much time on installation as I have on development.

A conversion program among Web, Windows, & SmartApplications would be a nice. Why have to write the same code multiple times. Also, certain controls have different properties and display differently depending on the fornat, specifically, I would avoid using the TabControl component if you want similar programs on both the PocketPC & WIndows environemnt.

Saturday, February 07, 2004 11:39 AM by Rob

# re: Introducing DotNetAtlanta.com with Forums

Take a look at www.dotnetpark.com web hosting. Thay are better than webhost4life and they install ASP.NET forums, DotNetNuke etc. for free.

Sunday, February 08, 2004 10:26 AM by Enroth

# re: Introducing DotNetAtlanta.com with Forums

I've looked -- webhost4life offers more for a lower price, and I've been with them long enough to personally know their great support and performance. Besides, you really missed the point -- I'm a developer and I do my own thing because I can customize it -- why would I want someone to install forums for me?

Sunday, February 08, 2004 3:41 PM by Paul Wilson

# re: Looking for ASP.NET Article Ideas

They do a very good job covering ASP.Net. I can't think of anything else.

Monday, February 09, 2004 4:37 PM by Yo' momma

# Leak Found in the .NET XmlSerializer

Wednesday, February 11, 2004 4:20 PM by TrackBack

# re: Leak Found in the .NET XmlSerializer

Paul, whilst I've not run in to this problem it would be benificial if you could explain how you "just create it once and reuse it" - just in case I (or others) run in to the issue.

:-)

Wednesday, February 11, 2004 5:08 PM by Phil Winstanley [ASP.NET MVP]

# re: Sorting and Paging Recordsets in SQL Server

what's the asp supposed to look like?

Wednesday, February 11, 2004 7:34 PM by HELP!

# re: Leak Found in the .NET XmlSerializer

Create the serializer once, and keep a reference to it.

Wednesday, February 11, 2004 8:02 PM by JosephCooney

# re: Leak Found in the .NET XmlSerializer

(sorry - I should have mentioned that my previous post was in answer to Phil's question).

Wednesday, February 11, 2004 8:03 PM by JosephCooney

# .NET Memory Management and Garbage Collection

Saturday, February 14, 2004 2:07 PM by TrackBack

# re: .NET Memory Management and Garbage Collection

SOme good info there on how .net works with memory ahd GC.

I think you have verifyied some things I have told folks over on GDN.com at least a few times.

but I think the question was posed there:

why run 40 users thru meta-frame to run a .net app??

it seems to me (untill I would know more details) that a better design could be built?

are the 40 users unable for some reason to run .net software on the pc's that use meta-frame?

even if this is the case I think you might see if you could perhaps run a second server and have it do some form of "Pooling" and or "Cacheing" of data and objects thus taking a large load off the meta-frame box.

3 tier design....
handle the meta-frame as if it was a web-client and use a middle server as if it was a web server / app server....

Saturday, February 14, 2004 2:24 PM by denny

# re: .NET Memory Management and Garbage Collection

Hmm, I personally used to write some data hungry .net winforms applications, and I think that it's not so good idea to have everything in memory as datasets. I used DataReader or save-query-to-disk techniques to handle such things. Anyway, finally I found out that it's much better to use web-service oriented architecture (like MS did with their business products like MS CRM). It's especially important in case Citrix or other terminal based scenarios, since you an "outsource" data processing activities to some other box(es)

Saturday, February 14, 2004 9:01 PM by Dmitry Shilov

# .net memory management and garbage collection

Sunday, February 15, 2004 12:33 AM by TrackBack

# .net memory management and garbage collection

Sunday, February 15, 2004 12:33 AM by TrackBack

# re: .NET Memory Management and Garbage Collection

Why use Citrix? First and foremost is security -- we don't want our data on individual machines. Its also a TCO issue to limit deployments and upgrades to centralized servers. While I would prefer a non-Citrix solution, its hard to argue with these valid business concerns.

Why not a middle tier? In this case it would make things worse! The problem is not getting the data, its working with it in the rich client application. Our issue is that we've designed no limitations, so paging or limits on number of records do not exist. Our app depends on everything being loaded into a feature-rich 3rd party grid control, which means all the data has to be in memory in the client process. I'll agree that these design decisions are what is hurting us the most, but given the requirements . . .

We've looked at save-to-disk techniques, and may yet go that way. The key is that any type of "paging" we do with the data must not slow down the user's experience.

Sunday, February 15, 2004 8:08 AM by Paul Wilson

# re: .NET Memory Management and Garbage Collection

"Our app depends on everything being loaded into a feature-rich 3rd party grid control, which means all the data has to be in memory in the client process."

that sounds like the "Kiss of death" right there.....

Paul, I have used sql databases with up to 5 million rows of data at a time....
I NEVER had to give the client all 5 million rows.... the "WOrst case" was doing odd-ball searches for some set of rows ....

but I never found that giving the client a set of less rows was a problem... as long as the app design worked with the user to give them a logical set that they expected to get based on what they were doing....

also if 20-40 users are using the same app the question is: how much data is *exacly the same* for all 20-40 users? if they can edit the data then you have updates to deal with but ..... that can be done without re-inventing the wheel.

I just think that perhaps some form of common data object could be created that would start each user with a reference to one common data object, this would have a "Local" object that looks at the global to read data....

then an update would cause the local to write the data to the sql database and pass an event to the global to cause it to re-load changed rows, that would then push an even out the the local proxy objects to re-fresh the local views.

under a model like that I can visualize 40 sessions having one common 100-600 meg data store and 40 local images of 1-10 changes to write

seems like that could reduce local memory stress a whole lot.

basicaly (this is .net data sets right??)
you would create a new data-adapter and data-set
objects that comply with the normal interfaces and extend them to work with a common memory based store.

Sunday, February 15, 2004 6:20 PM by denny

# re: .NET Memory Management and Garbage Collection

I fully agree its not a good technical design -- "kiss of death" is appropriate.
We currently have a 100,000 row limit in place -- and some users are quite upset.
As for shared data -- there will be very little, if any, in most cases for this.
Also, updates are not allowed to the original data, only to new copies of it made.
I'm talking about multi-GB databases, some of them in the TB-range -- very large.
Single users look at their "small" chunks, which might be 100MB, or maybe 1GB+!

Sunday, February 15, 2004 9:14 PM by Paul Wilson

# re: .NET Memory Management and Garbage Collection

Hi Paul,

great data, I found myself in similar positions when researching 'best pratices' for .NET based systems, although not on Citrix, so I very much appreciate you sharing this information with us. Thanks!- I also wish that MS would provide some more info on these kind of things publicly as I am sure they have done tests on terminal server/citrix...

One other question? - Why didn't you use a browser-based approach?

Best regards,

Marc

Monday, February 16, 2004 3:43 AM by Marc Hoeppner

# re: .NET Memory Management and Garbage Collection

It makes perfect sense to nullify global objects that doesnt need to be lurking out there anymore.

But this doesnt mean that you need to nullify each and every object; Its all about reachability. Your objects can not be collected when some code call still use/reach it.

In other words, objects that are created and only used within a certain scope do not have to be nullified.

Monday, February 16, 2004 4:17 AM by Ryan Heath

# re: .NET Memory Management and Garbage Collection

Marc:
A browser-based approach would be nice, but it simply does not provide a rich enough GUI, nor fast enough performance with this type of data. Think about it this way, would you drop all of your everyday tools and move them to the web?

Ryan:
Sounds like a nice theory, unfortunately the reality I've looked at shows that even setting local scope objects to null "can" make a big difference. Again, it may not be "needed", so it may depend on the scenario, and I certainly don't see the need with small apps and less data. But for large memory intensive apps, you really do need and can help the GC by setting at least the large objects to null. I didn't believe it myself, until I saw it.

Monday, February 16, 2004 6:59 AM by Paul Wilson

# re: .NET Memory Management and Garbage Collection

Ok very big data + grid + Metaframe

Yuk!

yes this is a "Rock and a hard place" indeed.

last comment: smart-client?

gets users out of meta-frame, keeps rich gui, spreads out memory footprint, keeps control of code and data central, clients code is updated on the fly by a server based code share.
you then manage "data on the client" with some custom classes ....
the only hard req. for this is all clients run WIn98 or later and get a 1 time install of .net framwork.
as for row-limit's I'd tend to think a custom data class could make the data "Virtual" to the client.... just a matter of how you present the data and let them scroll thru it.

Monday, February 16, 2004 11:17 AM by denny

# re: .NET Memory Management and Garbage Collection

I agree that would be my choice too, but security concerns have overriden technical preferences.

Monday, February 16, 2004 1:44 PM by Paul Wilson

# re: .NET Memory Management and Garbage Collection

Why not to run garbage collector after an user finished working with the data? Running garbage collector can be a bad idea for a server application, but for an user driven application it should not affect performance so much.

Monday, February 16, 2004 4:02 PM by Alex

# re: .NET Memory Management and Garbage Collection

We're starting to add a few well-placed GC.Collect method calls. My frustration is that there isn't any real direction on these issues -- or its wrong when there is.

Monday, February 16, 2004 4:08 PM by Paul Wilson

# Performance Articles

Monday, February 16, 2004 9:36 PM by TrackBack

# re: Politics and the Zen of Blogging

Regarding Fran's comment:

"It's your marketing skills that need some perfection :)"

I personally have seen numerous threads where Frans completely rips a user apart for disagreeing with his perspective... ending up just saying the other guy was stupid.

Regarding the comments by Josh above, I agree also.. When you are producing a product that you want people to buy, first and foremost professionalism will sell more copies. It might lose you more arguments, but hey, you're not getting paid to win arguments over who's idea is better or whats right / or wrong.

Fact is, for any given problem there are possibly dozens of solutions. Only an arrogant fool would argue that his was the "best" solution.

I tried Entity Broker and yes, I was flooded by its complexities and could not use it.

If LLBGen was so great, why not use XSLT from the start rather than hard code all the sql generation in code? I disagreed with that. So, I wrote my own using XSLT and a database reverse engineering process that generats xml schema from the db.

The moral of the story, use what works for you. And keep in mind that tools for the masses usually means masses of features a single developer does not need [but pays for anyways].

Monday, February 16, 2004 11:10 PM by Mark

# re: .NET Memory Management and Garbage Collection

Paul, I have change some code of your test app like:

private static void CreateArrayLists()
{
int arrCount = 2000;
int max = 20000 * approxMB / arrCount;
int count;
if (random)
{
count = new Random().Next(max / 2, max);
}
else
{
count = max;
}
for ( int arr = 0; arr < arrCount; arr++)
{
ArrayList list = new ArrayList();
for (int index = 0; index < count; index++)
{
list.Add(index.ToString());
}
}
}

When changing arrCount into 1 value, I get the same behaviour like your original testprogram.

However when creating more arrays, the GC seems to do a better job.

I do recall that the GC is handling objects with a large footprint differently than their lightweight counterparts. This behaviour was already "discovered" by other people.

I hope someone with more insights on the GC than us will comment on this issue...

Tuesday, February 17, 2004 7:58 AM by Ryan Heath

# re: .NET Memory Management and Garbage Collection

Per your memory management issues. It has been my experience that although the GC does a great deal of good work for you, i hope to see future releases be more preemptive in recapturing resources.

I read in interesting article on the GAC and it did open my eyes a bit to how it worked. If I can recall the Microsoft Blogger I will forward it to you. What was interesting was how some of it worked. For example, when you create an object, it puts it on the heap and your variable is just a pointer to that space (nothing new here), but when you set it to null you are merely just informing the CLR that you are no longer interested in that chunk of memory.

Furthermore, when a variable leaves scope, the GC has to first recapture the variable that holds the address to the chunk of memory. Then once all variables have been recaptured and all counters have been decremented to 0, it can reclaim the memory that the variables point to (this is a bit of conjecture on my part but I think I am right...if i am wrong someone please correct me). If all of this is true, then setting it to null must help the GC in its collection efforts because it does not need to recapture the memory the object variables are pointing to and the GC can more readily capture the underlying memory the objects were pointing to.

My 2 cents anyway,
-Mathew Nolton

Tuesday, February 17, 2004 6:19 PM by Mathew Nolton

# re: .NET Memory Management and Garbage Collection

...continued

...this extra step of reclaiming the variable directly affects the GC's ability to reclaim the memory the variable points to and can cause the GC to fall behind in its efforts to reclaim memory under a heavy load. That is why setting it to null helps the GC...Again this contains some conjecture but we have run across similar issues of the GC falling behind.

-Mathew Nolton

Tuesday, February 17, 2004 7:29 PM by Mathew Nolton

# re: .NET Memory Management and Garbage Collection

Sounds like a good explanation, short of hearing one from the clr team. Thanks.

Tuesday, February 17, 2004 7:31 PM by Paul Wilson

# re: Eric should write a blog post on...

Tuesday, February 17, 2004 11:21 PM by TrackBack

# re: .NET Memory Management and Garbage Collection

Paul, it's interesting to read your comments. My organisation is in a similar situation (Citrix, Server, GC not releasing memory, the works).

I have a couple of points so far:

Firstly, I think the reason why nulling out your reference to the list shows a benefit is because you are first building up a new list, then assigning it to the reference. Of course there will be GC activity while building up such a big list, and as you're still holding the reference until the list is assigned, the GC will not be able to collect the memory.

I believe you could change your code with one of the following methods to get the same results, which clarifies that it's not some mystical "We're telling the GC to collect it because when we set it to null, the GC knows to collect it" behaviour.

Instead of making a new local ArrayList, then adding to it, returning and assigning it, you either assign the new ArrayList straight to the list variable, then build it, or clear it without a new assignment, and build it.

In reference to Matthew Nolton's post, I am confused. As far as I'm aware, the .Net GC uses no reference counts, so if that's what you are referring to as "counters", I believe you are mistaken.

I also disagree with the statement that the GC has to clear some objects out before it can clear out the objects that were referenced by those in the first clearing. The GC presumes all objects are garbage until proved otherwise.

If an object is garbage, then the GC will never trace references from that object to any other object. Hence, if a garbage object references another garbage object, both are marked as garbage in one sweep, and collected at once.

I would love to hear of any solutions that come up for the issue with the GC.

Niall

Wednesday, February 18, 2004 1:22 AM by Niall

# re: .NET Memory Management and Garbage Collection

This discussion really got me thinking. It also helped clarify a few points for me that I had wrongly assumed. For example, there are no counters, but the GC does walk its internal pointers to determine if an object should be marked for collection. As for GC clearing objects in one pass, that depends upon the object's generation...interesting read.

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

Wednesday, February 18, 2004 10:04 AM by Mathew Nolton

# re: ValidateRequest in ASP.NET v1.1

<b>

Wednesday, February 18, 2004 2:54 PM by <b>

# Object Mapping

Wednesday, February 18, 2004 3:14 PM by TrackBack

# re: .NET Memory Management and Garbage Collection

Yes, sorry, I didn't go as far as considering the generations. It will clean the objects in one pass as long as they're in the generations the GC is going after. This is the same for the case where you're nulling out references to objects - if you null out a reference to an object in Gen 2, and a Gen 1 collection is run, the object will remain.

A good article is this one, and the Part 2 linked at the end.

http://msdn.microsoft.com/msdnmag/issues/1100/gci/

Wednesday, February 18, 2004 5:56 PM by Niall

# re: .NET Memory Management and Garbage Collection

Thanks,
I will have to check it out. Richter always seems to get it right.
-Mathew Nolton

Wednesday, February 18, 2004 7:14 PM by Mathew Nolton

# Debugging ASP.NET apps in Visual Studio

Simple debugging techniques and procedures.

Friday, February 20, 2004 11:56 AM by rblino

# User Control Interaction

A simple example with User Controls, Events, and Delegates.

Friday, February 20, 2004 11:58 AM by rblino

# IBuy Spy Step-by-step

Multi-series article on how/why IBuy Spy was designed and built.

Friday, February 20, 2004 11:58 AM by rblino

# XML for menus

How to use XML for menu content.

Friday, February 20, 2004 11:59 AM by rblino

# Multi-Language Site Techniques

Database structure, SessionState and Cookies for Language selection, Drop-down user control, etc...

Friday, February 20, 2004 12:01 PM by rblino

# .NET GC Myth #1 -- Set Object to Null

Friday, February 20, 2004 8:40 PM by TrackBack

# re: .NET GC Myth #1 -- Set Object to Null

Excellent point Paul. I was laughed at when I went the null/nothing route. It seems that when I have forgotten to do this, I may have had problems. When I do go the null/nothing route, I have never had a problem. Good points Paul!

Wally

Friday, February 20, 2004 8:53 PM by Wallym

# .NET GC Myth #2 -- The GC Frees Memory

Friday, February 20, 2004 8:58 PM by TrackBack

# re: .NET GC Myth #1 -- Set Object to Null

After downloading your example, I noticed a flaw in your analysis.

Setting Object To Null is usually not necessary, because the JIT compiler tracks the LAST use of a variable within a method. In such cases, the garbage collector ignores variables, when the instruction pointer exceeds the address of the last known use of the object variable.

However, if the variable is still used further down a function, then setting object to null does help. In your example, the garbage collector has no way of knowing the variable is no longer used, because the variable is still used further down the function.

Friday, February 20, 2004 9:23 PM by Wesner Moise

# re: .NET GC Myth #1 -- Set Object to Null

Let me also point out GC.KeepAlive(obj), which is a function call that is used to prevent objects from being freed prematurely.

In the following example from Rotor, the GC can prematurely close the stream before MethodThatSpansGC() finishes. This is because the Foo object is no longer used in Main and the this pointer is no longer used when stream.MethodThatSpansGC is called.

// class Foo {
// Stream stream = ...;
// protected void Finalize() { stream.Close(); }
// void Problem() { stream.MethodThatSpansGCs(); }
// static void Main() { new Foo().Problem(); }
// }

Friday, February 20, 2004 9:35 PM by Wesner Moise

# re: .NET GC Myth #1 -- Set Object to Null

Hi Wesner:

Again, as I noted, my example was concocted on purpose to show the worst case. But I had an example previously that I did not upload, since it was not my point, that did not suffer from this "flaw" and which was still helped by setting objects to null, although certainly the it was not as great of an impact. Also, if you look at the graphs I made, you will see that the total committed memory even in my "flawed" example was quite frequently much more than could be explained by this "flaw" alone. So while I can't really explain it, I've seen the proof, and there certainly are situations where setting an object to null does help the GC.

Friday, February 20, 2004 10:12 PM by Paul Wilson

# re: .NET GC Best Practice -- ALWAYS Call Dispose

An elegant means of inoking Dispose that have adopted is using the "using" construct. For those of you who may not nbe familiar with the construct, it provide a means to implicity invoke Dispose() on an instance that implements IDisposable even if an exception is thrown durring the operation. The following is an example of the using construct:

using(DisposableClass dc = new DisposableClass())
{
dc.PerformActionOnUmanagedResources();
dc.PerformAnotherActionOnUmanagedResources();
}
In the previous example, if an exception was thrown in the PerformActionOnUmanagedResources() method, although the PerformAnotherActionOnUmanagedResources() method would not be processed, the using block will still implicity invoke the Dispose method on dc ensuring the realese of any unmanaged resources.

Friday, February 20, 2004 10:40 PM by Athens Holloway

# re: .NET GC Best Practice -- ALWAYS Call Dispose

The Using keyword will also be added to VB.NET in .NET v2.0.

Friday, February 20, 2004 10:43 PM by Paul Wilson

# re: .NET GC Best Practice -- ALWAYS Call Dispose

Isn't it just easier to use unmanaged C++ if you need control over releasing resources? I thought the whole selling point of managed environment was that you don't have to do that...

Saturday, February 21, 2004 12:01 AM by Jerry Pisk

# re: .NET GC Best Practice -- ALWAYS Call Dispose

Also, remember on things like a SqlConnection you may not want to call Dispose because it actually closes the connection while the Close method does not if connection pooling is on. So you would see performance loss if you disposed the connection because a new connection really would have to be opend and thus connection pooling would be a waste.

Saturday, February 21, 2004 7:41 AM by Adam Weigert

# re: .NET GC Best Practice -- ALWAYS Call Dispose

Sorry Adam, but I disagree. First, I've looked at the source code in Anakrino, and all Dispose does is call Close and null out the connection string -- nothing more. I've also tried this for myself, and I didn't see that behavior. Maybe this is another myth that is making the rounds, but there's nothing like trying it for yourself.

Saturday, February 21, 2004 8:48 AM by Paul Wilson

# re: .NET GC is Excellent -- Better Than Java

I completely agree with you!

Saturday, February 21, 2004 2:31 PM by Lorenzo Barbieri

# Leak in .NET ContextMenu

Leak in .NET ContextMenu

Saturday, February 21, 2004 2:47 PM by TrackBack

# .NET garbage collection - advantages and issues

On Saturdays I tend to wake up at noon and just read leisurely, not being prepared to do much more, except catch up with the outside world. Paul Wilson posted an interesting series of articles on .NET garbage collection, where...

Saturday, February 21, 2004 5:26 PM by TrackBack

# .NET garbage collection - advantages and issues

On Saturdays I tend to wake up at noon and just read leisurely, not being prepared to do much more, except catch up with the outside world. Paul Wilson posted an interesting series of articles on .NET garbage collection, where...

Saturday, February 21, 2004 5:26 PM by TrackBack

# .NET garbage collection - advantages and issues

On Saturdays I tend to wake up at noon and just read leisurely, not being prepared to do much more, except catch up with the outside world. Paul Wilson posted an interesting series of articles on .NET garbage collection, where...

Saturday, February 21, 2004 5:26 PM by TrackBack

# .NET garbage collection - advantages and issues

On Saturdays I tend to wake up at noon and just read leisurely, not being prepared to do much more, except catch up with the outside world. Paul Wilson posted an interesting series of articles on .NET garbage collection, where...

Saturday, February 21, 2004 5:26 PM by TrackBack

# .NET garbage collection - advantages and issues

On Saturdays I tend to wake up at noon and just read leisurely, not being prepared to do much more, except catch up with the outside world. Paul Wilson posted an interesting series of articles on .NET garbage collection, where...

Saturday, February 21, 2004 5:26 PM by TrackBack

# re: Looking for ASP.NET Article Ideas

1. design patterns in ASP.NET framework infrastructure

2. developing ASP.NET apps with design patterns

Saturday, February 21, 2004 6:59 PM by Adrian Florea

# re: Looking for ASP.NET Article Ideas

Real world case studies about using MS application blocks

Saturday, February 21, 2004 7:05 PM by Adrian Florea

# Object Mapping

Sunday, February 22, 2004 1:52 AM by TrackBack

# re: .NET GC Myth #1 -- Set Object to Null

Paul,

I still think you are incorrect about the nulling of objects being a cure. It does work, but there are logical reasons for it, and it's not something special about null and the GC suddenly realising that it can do something different.

If you check the managed heap usage in your test app, before and after you null out the ArrayList, you see it go from 8MB to virtually none (this is with a 1 minute run). If you check before the ArrayList.Clear(), it is around 70MB. So clearing the list brings the managed heap usage down from 70MB to 8MB. Subsequently nulling the list takes it from 8MB to ~0.

So you might still think that using null is serving a purpose. It is, but not because null holds some special value to the GC. After the list is cleared, the internal array in the ArrayList is still allocated. At this point, there are 2 million elements in it (using ArrayList.Capacity). At 4 bytes per pointer, that's all of the 8MB which is the difference. If you call ArrayList.TrimToSize(), then all the memory is gone, and there is no benefit from nulling out the list.

So once again it comes down to the business case. If you are going to be reloading that list back to the same size again, nulling out the list will only mean you have to spend all the time allocating the memory again. If you are finished with the list, then trimming it after emptying will do exactly the same thing as null.

Sunday, February 22, 2004 8:21 PM by Niall

# re: Leak Found in .NET ContextMenu

Hiya,
Just as an aside, this problem occurs also on MainMenus - not just ContextMenus.

Sunday, February 22, 2004 10:30 PM by Zubin Appoo

# re: Leak Found in .NET ContextMenu

Thanks for that info Zubin. Very little, if any, of our main menu is dynamic, so hopefully that's why we haven't noticed this one yet.

Sunday, February 22, 2004 10:38 PM by Paul Wilson

# Ready, Compiler, Switch...

Tuesday, February 24, 2004 1:01 AM by TrackBack

# re: .NET GC Myth #1 -- Set Object to Null

Another note. Jerry Dennany shows that the GC works differently in depending on Debug/Release mode.

Tuesday, February 24, 2004 1:47 AM by Wesner Moise

# re: .NET GC Best Practice -- ALWAYS Call Dispose

But Paul, you didn't write the most important thing. Why should we explicitly call the Dispose method? It is still being called by the GC, so why call it manually? Is there any performance gain, can you point to some whitepaper saying this?

Thanks,

Radim

Tuesday, February 24, 2004 3:06 AM by Radim Hampel

# re: .NET GC Best Practice -- ALWAYS Call Dispose

Hi Radim:

Why should you explicity call Dispose? First, because it is NOT automatically called by the GC! That seems to be a very common misunderstanding. The only way to automate the call to Dispose is if you using the C# using keyword. Otherwise, objects that implement IDisposable must have their Dispose method called manually -- it will NOT be called by the GC. That said, the typical implementation pattern, but not guaranteed, is that the same code that frees the unmanaged resources in the Dispose method will also be executed in the Finalizer method. The problem with this, which is itself a big assumption, is that in order for Finalizers to be executed they have the side-effect that such objects don't get GCed very quickly at all. Instead, when the object would have gotten GCed it instead gets Finalized and then promoted to the next heap generation. It will then only get GCed when that next heap generation is actually GCed, which could be quite a bit delayed since that's the point of heap generations. By the way, the proper implementation pattern for the Dispose method is that the code in that method should also call GC.SuppressFinalization to turn off the Finalizer and avoid the usual GC delay that Finalizers incur. So if you are not calling Dispose manually, or using the C# using keywork, then you are relying on the Finalizer, which will always incur a large cost, and you are also making an assumption that there is a Finalizer and that it does the same thing as Dispose.

Dispose is your friend, and its there for a reason -- call it when it exists!

Thanks, Paul Wilson

Tuesday, February 24, 2004 8:28 AM by Paul Wilson

# re: .NET GC is Excellent -- Better Than Java

Paul I agree. At the same time you shouldn't have to apologize. The whole point of living in our community is to freely and openly discuss ideas and rants...as long as the information you present is fair and factual...who cares.
-Mathew Nolton

Tuesday, February 24, 2004 5:39 PM by Mathew Nolton

# re: .NET in Terminal Server (or Citrix) Scenarios

Richter also has a great discussion in his .Net Framework Programming. Its a good read on implementing the Dispose pattern as well as finalizers (its in line with Brumme).

Tuesday, February 24, 2004 5:40 PM by Mathew Nolton

# re: .NET GC Myth #1 -- Set Object to Null

Yes, as far as I'm aware the optimisation for not reporting roots for locals that are still in scope, but not in use only occurs in Release mode.

Wednesday, February 25, 2004 5:10 PM by Niall

# re: Weak References, when to use?

Friday, February 27, 2004 6:27 AM by TrackBack

# Looking for .NET specific info

Friday, February 27, 2004 6:38 AM by TrackBack

# re: .NET GC Best Practice -- ALWAYS Call Dispose

I'm swore I read somewhere on msdn that calling Close() will call Dispose().
Which kind of makes sense for the idioms we see. Open() the connection, Close() the connection. I've seen no idioms where Dispose() is called instead in this case.
Let me know if you think this is correct or not. If not I'll try to locate the source that I read it from.

Friday, February 27, 2004 3:50 PM by Rex

# re: .NET GC Best Practice -- ALWAYS Call Dispose

Decompiling it shows that Dispose calls Close -- Close does not call Dispose, although the effect is the same. However, the point I'm making is that the only way you can say its safe to not call Dispose is because you have some inside knowledge, either from an expert or from a decompiler. But internal implementations can change, and its a very bad practice to ignore the very pattern, IDisposable, that was included for a reason just because you think its safe to ignore it. Trust me, I've code this way too, and I don't like adding an extra line when I don't think I need to do so, but its these types of assumptions that have proven to be wrong in many cases, even if not in this case. Thus my advice is to trust the pattern, not the assumptions of insider information.

Friday, February 27, 2004 4:12 PM by Paul Wilson

# re: .NET GC Best Practice -- ALWAYS Call Dispose

Paul,
I cracked open SqlDataReader in ildasm and you're correct, Dispose() calls Close().
However, I opened up the TextWriter and in this case Close() calls Dispose().
Is there a "theory for everything" reason for this? Or are different developers at MS implementing their own interpretations of patterns?
Thanks.

Friday, February 27, 2004 4:30 PM by Rex

# re: .NET GC Best Practice -- ALWAYS Call Dispose

The lack of consistency is probably related to at least two things, maybe more. First, the IDisposable interface wasn't added until the very last minute, which explains why there is both a Close and a Dispose in the first place. The other issue is that even now the IDisposable interface is more of a pattern to follow then something baked into the .NET framework, since the GC is ignorant of it. So while we all agree that there is an IDisposable interface to implement when there are unmanaged resources, there really isn't any specific implementation standard.

Friday, February 27, 2004 7:38 PM by Paul Wilson

# re: ObjectSpaces only supports SQL Server?

Tuesday, March 02, 2004 7:06 PM by TrackBack

# re: WilsonORMapper works well with MySQL

Have you ever tested with SQLite? I don't believe it has an odbc driver, but it does have an ado.net provider. SQLite is a great offline type database like access.

thanks
Paul

Thursday, March 04, 2004 12:45 PM by Paul W.

# re: WilsonORMapper works well with MySQL

Another Paul W.? :)

Sorry, but I've barely even heard of SQLite. The architecture should make it very easy to extend to other providers, even without OleDb or Odbc drivers, once you have the source code.

Thursday, March 04, 2004 4:24 PM by Paul Wilson

# RE: WilsonORMapper: New Site and New Features

Looking pretty sweet. Nice work!

Thursday, March 04, 2004 9:19 PM by eichert12@hotmail.com (Steve)

# re: WilsonORMapper: New Site and New Features

fyi: Your news and examples tabs are not working.

Friday, March 05, 2004 10:18 AM by dude

# re: WilsonORMapper: New Site and New Features

They work in IE and Mozilla for me -- what behavior are you seeing, and which browser?

Friday, March 05, 2004 10:29 AM by Paul Wilson

# O/R Mappers: Optimistic Concurrency

Friday, March 05, 2004 4:35 PM by TrackBack

# O/R Mappers: Optimistic Concurrency

Friday, March 05, 2004 4:35 PM by TrackBack

# re: ASP.NET v2.0 (Whidbey) Articles on ASPNetPro.com

u r an asshole ur dll's are not registering. fuck u and ur components

Friday, March 05, 2004 4:55 PM by haqq

# re: O/R Mappers: Optimistic Concurrency

The first public showing of ObjectSpaces used a type of code injection. You authored your objects as abstract base classes, leaving all your data properties abstract. At runtime the system generated code to turn your abstract classes concrete. This had the drawback of not being able to use 'new' to construct your object. The next version that never showed up at PDC used ContextBoundObject like you described in order to intercept references to properties, etc, to store original values and such. Unfortunately, all that stuff was designed for building remoting proxies and the cost for in-memory cases was just too heavy. The current ObjectSpaces implementation does not rely on either, simplifying the process greatly.

Friday, March 05, 2004 5:01 PM by Matt

# re: O/R Mappers: Optimistic Concurrency

Ok, I'll bite. What then does the current ObjectSpaces implementation do? Please inform us, don't leave us hanging!

Friday, March 05, 2004 6:08 PM by joe

# re: O/R Mappers: Optimistic Concurrency

As far as I can tell, the alpha version that is available now uses something similar to RAIL -- they create dynamic assemblies that get substituted for the real things at load-time. This was exactly where I was also heading until I stopped and decided that things needed to be more flexible anyhow. It would be nice for Matt to confirm it though, since its really hard to tell for sure.

Friday, March 05, 2004 6:17 PM by Paul Wilson

# re: ASP.NET v2.0 (Whidbey) Articles on ASPNetPro.com

What are you trying to register? You don't typically register .net dlls, although you sometimes install them in the GAC. If that's what you mean, then you are right that I have not strongly named my components, so they will not install in the GAC. Everything comes with the code, so you can strong name them yourself if you desire, so . . .

Friday, March 05, 2004 6:23 PM by Paul Wilson

# re: O/R Mappers: Optimistic Concurrency

"Optimistic concurrency works by adding some portion of the record's original values to the where clause of the update statement to make sure no one else has updated it first. "
Heh :) Optimistic (or pessimistic) concurrency doesn't work. Either way someone looses work done. It's OR the one who saved first, OR the one who tries to save last OR the one who started first OR the one who started last.

When do people start seeing that low level concurrency is not the way to go?

Saturday, March 06, 2004 6:37 AM by Frans Bouma

# re: O/R Mappers: Optimistic Concurrency

I've solved it this way (but it's probably not appropriate for you, as you use the non-intrusive way)

I've defined an interface, IConcurrencyPredicateFactory. This interface has a method which is defined to produce filters based on the entity passed in and the type it is required for (delete, save).

An instance of this interface can be inserted into the entity object, for example at construction or whenever you want.

The advantage is that you can produce whatever concurrency scheme you want! Timestamp and some value? just a value? just a set of values? just a timestamp? no problem. Just produce the filter object.

When you have constructed an object hierarchy at runtime (like customer with some new orders, orders have new order detail objects, perhaps some other referenced objects), you can simply save the Customer and all objects get persisted recursively, AND the concurrency predicate factories inside these objects are used at the moment they're required. Set and forget :)

This approach has also the advantage that you can set concurrency on a per-object basis or on a per-entity type basis.

Saturday, March 06, 2004 6:44 AM by Frans Bouma

# O/R mappers and concurrency control

Saturday, March 06, 2004 7:12 AM by TrackBack

# re: Sorting and Paging Recordsets in SQL Server

I was wondering if you had an example of using this code with an asp.net datagrid, complete with paging and sorting. email: mwpat@rogers.com

Saturday, March 06, 2004 8:49 AM by Mark

# re: Sorting and Paging Recordsets in SQL Server

I use it internally at work on a project, but that's not an example I can share. I also use this, but wrapped up in my WilsonORMapper, on my site, but there I use repeaters since I don't like datagrids. There are lots of other examples that show you the asp.net code that you want, so I haven't bothered to recreate one yet again -- the only thing I'm pointing out is how to set up the stored procedure in a better way.

Saturday, March 06, 2004 11:28 AM by Paul Wilson

# re: O/R Mappers: Optimistic Concurrency

I totally agree that optimistic concurrency is often, and incorrectly, given a very lofty place. That's why I didn't even bother to include it in my first version, and even now make you set it up. I also don't like the fact that its the default in MS ObjectSpaces, although I assume (hope) there's some way to turn it off. I have seen very few systems over the years that have multiple people updating the same records, although its very common to have triggers or other checks against common summary data, but that's not really the same thing at all!

Saturday, March 06, 2004 11:38 AM by Paul Wilson

# re: O/R Mappers: Optimistic Concurrency

it's just the problem make me puzzed.TimeStamp can avoid the conflict but can't resolve it.

Sunday, March 07, 2004 9:51 PM by progame

# re: Windows 2003 Blue Screen of Death

I have the same problem.
I have download the last drivers for my alcatel, and the problem continue.
I need help for this problem!

Sorry my English, I'am Portugues. lol

Thanks

Wednesday, March 10, 2004 2:01 PM by Filipe Carneiro

# re: Windows 2003 Blue Screen of Death

The latest driver fixed my problems. I don't know anything else to tell you.

Wednesday, March 10, 2004 4:28 PM by Paul Wilson

# re: Give Me Whidbey ASAP -- Screw Yukon

I totally agree.

Thursday, March 11, 2004 12:45 PM by Jason Longwith

# The Yukon and Whidbey slip: Take a deep breath and count to 10

Thursday, March 11, 2004 1:43 PM by TrackBack

# All these people (and probably a lot more) are right

Thursday, March 11, 2004 2:23 PM by TrackBack

# The Yukon and Whidbey slip: Take a deep breath and count to 10

Thursday, March 11, 2004 2:29 PM by TrackBack

# re: Give Me Whidbey ASAP -- Screw Yukon

I can almost here George Bush, Sr. in the background. "Not gonna do it."

Keep dreaming. It's a nice dream.

Friday, March 12, 2004 1:03 AM by Jerry Dennany

# re: Give Me Whidbey ASAP -- Screw Yukon

MS never learns. They're junkies hooked on locking users in. Does that make all of us co-dependants? Begin very long rant... [snip: you've heard it all before]... ah I feel better, but no better off. Time to think what to do about it.

P.S. The silence from MS staff bloggers is deafening. I hope against hope the staff is revolting.

Friday, March 12, 2004 9:56 AM by Rick

# re: Atlanta DevDays on Tuesday March 16

See ya there!

Monday, March 15, 2004 10:02 PM by Jerry Dennany

# More on Interfaces for System.Data

Tuesday, March 16, 2004 3:09 PM by TrackBack

# More on Interfaces for System.Data

Tuesday, March 16, 2004 3:09 PM by TrackBack

# More on Interfaces for System.Data

Tuesday, March 16, 2004 3:09 PM by TrackBack

# More on Interfaces for System.Data

Tuesday, March 16, 2004 3:35 PM by TrackBack

# More on Interfaces for System.Data

Tuesday, March 16, 2004 3:35 PM by TrackBack

# More on Interfaces for System.Data

Tuesday, March 16, 2004 3:35 PM by TrackBack

# re: Altanta DevDays and Franklin's .NET Rocks

Ok, point taken. It's good that the word is getting out, and that these sessions take place. I just wish that there was more for the avid .net junkie.

Tuesday, March 16, 2004 9:56 PM by Jerry Dennany

# re: .NET GC Myth #1 -- Set Object to Null

What happens to session objects, containing, say an xmldocument object with data? I am using several objects containing from 3KB to 80KB data each....

Memory does not seem to clear when I uses Session.Abandon... even after setting each object to nothing...

Friday, March 19, 2004 1:44 PM by Doug Oliver

# re: .NET GC Myth #1 -- Set Object to Null

Keep in mind that you have to wait for the GC to come around, and any long-lived objects as session usually is will be in gen 1 or gen 2 so they won't get GCed as often. And large objects are always in gen 2, so once again you may have to wait awhile. So, when you say memory does not seem to clear, does your server have more than 32MB of memory left? If so, then you haven't reached a critical point yet, so the GC may not occur for a some time! In other words, lots of memory being allocated should not matter unless you are running very low, which is going to occur far more often if your system is running many things at once.

Friday, March 19, 2004 2:02 PM by Paul Wilson

# re: .NET GC Myth #1 -- Set Object to Null

Is there any way to explicitly invoke GC to clean up the large object heap? I am in a situation where the ASPNET process kicks out when memory reaches 250MB... done all kinds of performance and memory monitoring with Microsoft, and they can't figure out what it is... crash dumps and all... so I'm contemplating working with smaller objects in string form only (serializable) and using state server. Machine.config processmodel memory limit is set at 60% of 2 Gigs RAM, so 250 Megs shouldn't be a problem.

Friday, March 19, 2004 2:46 PM by Doug

# re: .NET GC Myth #1 -- Set Object to Null

Partly. You can call GC.Collect, but that's a strong suggestion, and it could impact performance in several ways. That said, my app with lots of large objects does use some GC.Collect calls when windows are closed to help cleanup, but its not a web app which would have multiple threads of requests that would be impacted.

There are several reasons why ASP.NET will recycle, not just for exceeding its memory limit. I don't recall the others off the top of my head, but I would make sure you check into those also. Also, is no other design you can use to avoid xml documents in session? If they are shared you can use a static field, or maybe use the cache with sessionid as a key if they aren't always reused since it will clean itself up as needed. My app with large objects would be much better off redesigned, and there are many ways to do so usually -- in my case its a management thing though.

Friday, March 19, 2004 2:55 PM by Paul Wilson

# re: Need help on defining delegates

Monday, March 22, 2004 3:19 PM by TrackBack

# re: Altanta DevDays and Franklin's .NET Rocks

Good to see you there as well Paul.
-Mathew Nolton

Tuesday, March 23, 2004 11:40 AM by Mathew Nolton

# re: Coding Standard for .NET and VB6 Teams

description kya hai

Thursday, March 25, 2004 4:31 AM by description kya hai

# Another .NET leak - this time in the XmlSerializer class.

Thursday, March 25, 2004 1:15 PM by TrackBack

# Global .NET memory counters don't work?

Friday, March 26, 2004 9:05 AM by TrackBack

# re: Should I assign null to my local variables?

Saturday, March 27, 2004 7:37 AM by TrackBack

# re: Book: Test Driven Development in Microsoft .Net

Do you know of any online reviews of this book? I see that no one has reviewed it yet at Amazon.

Sunday, March 28, 2004 8:05 PM by Jonathan

# re: Book: Test Driven Development in Microsoft .Net

Sunday, March 28, 2004 8:09 PM by Paul Speranza

# re: Book: Test Driven Development in Microsoft .Net

I assume there is no review because its so new. Paul Speranza linked to his comment on Roy's blog where he says its good so far, and I've seen several other blogs say the same. Also, I think someone indicated the authors are part of the NUnit development team, so this is really coming from the experts.

Sunday, March 28, 2004 8:17 PM by Paul Wilson

# re: Book: Test Driven Development in Microsoft .Net

Here's an article on unit testing your data layer.

Sunday, March 28, 2004 10:00 PM by Darin Vanatta

# re: Book: Test Driven Development in Microsoft .Net

Sunday, March 28, 2004 10:01 PM by Darin Vanatta

# Paul Wilson on .NET Memory Management and Garbage Collection

Monday, March 29, 2004 9:53 AM by TrackBack

# re: ASP.NET v2.0: Posting to Other Pages is too Limited

I still think posting to other pages is not needed, even if it involves pages on different websites. It was probably disabled because of the better alternative, i.e. posting the data using XML Dom from one website to a webservice on the other website.

Wednesday, March 31, 2004 12:04 PM by Jonah Acquah

# re: ASP.NET v2.0: Posting to Other Pages is too Limited

Sorry, but I never did post an update -- Scott Guthrie noted that my protest was heard and that it will now allow you to post to other servers and applications. See http://weblogs.asp.net/scottgu/archive/2003/11/15/37802.aspx. Should you really need this? No, but that's not the point -- the point is that html allows this, sometimes you have to integrate with others that expect this, and there are some cases where it is just nice.

Wednesday, March 31, 2004 12:14 PM by Paul Wilson

# re: Thanks to Contributors of WilsonORMapper v2.0

When are we gonna see some perf numbers?

Wednesday, March 31, 2004 8:04 PM by M. Keith Warren

# re: Thanks to Contributors of WilsonORMapper v2.0

Wednesday, March 31, 2004 8:08 PM by Paul Wilson

# re: Thanks to Contributors of WilsonORMapper v2.0

Wednesday, March 31, 2004 8:08 PM by TrackBack

# re: Force ASP.NET Apps to Keep-Alive

The article code is good. but the document doesn't cotain the details of the TAConfig file. As it plays imp role, it is difficult to understand without it

Thursday, April 01, 2004 2:36 AM by nb

# Breaking ObjectSpaces out of .NET Framework

Thursday, April 01, 2004 3:44 PM by TrackBack

# re: ObjectSpaces to be Separate Package ?

LLBL stands for: Lower Level Business layer Logic :). So the generator for that is called LLBLGen :)

The name is abit of a pain as it is unpronouncable, however because it is widely known, I'd be mad to change it :)

Btw, I wouldn't be surprised if Alex will say tomorrow it's an April Fools 'joke'... (but a bad one, a lot of people will be dissapointed).

Thursday, April 01, 2004 4:12 PM by Frans Bouma

# re: Sorting and Paging Recordsets in SQL Server

quite helpful - babu

Friday, April 02, 2004 5:26 AM by babu

# re: Sorting and Paging Recordsets in SQL Server

Sorry, I'm new to sql. Why the extra "SELECT * FROM ~ IN ~" statement?

Why not just do a "SELECT TOP ' + @SizeString + ' * FROM ..." and make the second select the top select (if you see what I mean). Wouldn't this have the same affect?

Monday, April 05, 2004 5:08 AM by Bob

# re: Sorting and Paging Recordsets in SQL Server

GOOD ONE

Tuesday, April 06, 2004 3:25 AM by SANDESH

# re: ObjectSpaces to be Separate Package ?

After talking with some Microsoft folks yesterday about this it seems they want to make sure they get all the ADO.Net issues lined up completely before diving into ObjectSpaces. A more stable and fully optimized version of OS that takes advantage of all that ADO.Net 2.0 offers certainly would be preferrable. Also, this might leave some extra time to provide a multi-backend version out of the box. Still, this is a bummer.

Tuesday, April 06, 2004 1:00 PM by Rick Strahl

# re: Visual Source Safe, MVP Summit, and NDA Info

Well, I think past history had indicated exactly how much leaks regardless of who you tell. I'm NOT saying that you or any other MVPs have been a leak source in the past.

That said, maybe the announcement is tied to something bigger and we want to keep the whole thing under wraps until it is announced. There are many levels of NDA and the information is tailored for the specific NDA audience. So, just because you have an NDA does not mean that all information is available.

Tuesday, April 06, 2004 10:11 PM by Alex Lowe

# re: Visual Source Safe, MVP Summit, and NDA Info

"That said, maybe the announcement is tied to something bigger and we want to keep the whole thing under wraps until it is announced."
This in fact says more than Paul has said. Apparently MS has something in the works to solve versioning control once and for all (perhaps working in a class db directly? ) :)

Although I think too much ground has been lost to Vault or free alternatives like subversion to win back the hearts and minds of the developers to support sourcesafe again. I've never had probs with sourcesafe myself, it did what it promissed and I think a lot of hte bad publicity is also fed by lack of knowledge, but nevertheless, it's bad publicity and a bad reputation.

Wednesday, April 07, 2004 5:50 AM by Frans Bouma

# re: Visual Source Safe, MVP Summit, and NDA Info

I hate to argue, Frans, but I would point out that a lot of the good publicity that Source Safe gets is from people with either a lack of knowledge, or an extremely simple source code tree with minimal branching.
I have yet to meet a Software Configuration Manager who looks at Source Safe with anything but disdain.
--
And, as far as Paul's original post, he's correct, this has been stated many times. Every time I ask a Microsoft employee, this is the answer I get.
Unfortunately, I work in a Microsoft only shop, and there is no opportunity to bring anything else in, even if it is free. Else, I'd be jumping on the Subversion bandwagon right about now.

Wednesday, April 07, 2004 11:01 AM by Jerry Dennany

# re: Visual Source Safe, MVP Summit, and NDA Info

Like many others, I have moved onto SourceGear's Vault, and I have no desire to move back... And we're a Microsoft shop!

Wednesday, April 07, 2004 11:12 AM by Eric G. Harrison

# re: Visual Source Safe, MVP Summit, and NDA Info

Jerry: our database is not that simple I can tell you that :)

All the people I've spoken to who had probs with sourcesafe, did use the tool wrong (very big databases, multi-checkouts per user, etc. etc.). Admitted, working with a lot of branches is hard in Sourcesafe, that's why we moved to subversion recently. Not because sourcesafe is a big piece of crap though, a thing I keep on hearing.

Wednesday, April 07, 2004 1:15 PM by Frans Bouma

# re: Book: Test Driven Development in Microsoft .Net

It's true, both the author of the book are part of the Nunit development team.

Here is the site to the team if someone are interested.

http://www.nunit.org/

Friday, April 09, 2004 6:02 PM by Fredrik Normén

# re: Matrix Spoof featuring Gates and Ballmer

Yep, that was one of the hottest searches on Google right after Comdex last year. MS says they're not going to release it, either.

Too bad, I think it would give them some good pub.

Sunday, April 11, 2004 12:56 PM by Doug Thews

# re: Matrix Spoof featuring Gates and Ballmer

Then there was the one at the 2000 PDC where Balmer was Dr. Evil and Gates was Austin Powers, followed by a "Real World - Redmond" segment where the duo were joined by Tom Brokaw and (was it) Leslie Stall and (IIRC) some other celebrity, all living together in Bill's house. I waited for the DVD set of the PDC that we ordered at priceline, only to be disappointed when they faded out from Bill's keynote, then just faded back in without the video. sigh.

Monday, April 12, 2004 9:30 AM by Roy Green

# For future reference...Page Events article

Tuesday, April 13, 2004 8:49 AM by TrackBack

# re: VB.NET v2.0: Generics are Supported in VB Also

Hey Rob.
I'm stuck. How do I convert the scottgu snippet to vb? eg:


public class OrderSystem
{
public List<Order> GetOrders() {

List<Order> orders = new List<Order>();

orders.Add(new Order(123, "Dell"));
orders.Add(new Order(345, "Toshiba"));
orders.Add(new Order(567, "Compaq"));

return orders;
}
}

Any ideas?

Tuesday, April 13, 2004 10:39 AM by Damian Barrow

# re: VB.NET v2.0: Generics are Supported in VB Also

Well, I'm not Rob, but . . .

Public Class OrderSystem
Public Function GetOrders() As List(Of Order)

Dim _orders As New List(Of Order)

_orders.Add(new Order(123, "Dell"))
_orders.Add(new Order(345, "Toshiba"))
_orders.Add(new Order(567, "Compaq"))

Return _orders
End Function
End Class

Tuesday, April 13, 2004 11:00 AM by Paul Wilson

# re: MasterPages in .NET v1.* -- Dynamic Masters

Might the revitalized interest in MasterPages be due to this article?

Creating Template-Driven Web Sites with MasterPages
http://aspnet.4guysfromrolla.com/articles/040704-1.aspx

??? :-)

Tuesday, April 13, 2004 11:08 AM by Scott Mitchell

# re: MasterPages in .NET v1.* -- Dynamic Masters

Ha ha :) No doubt some of it is Scott -- and thank you very much ! Of course, some may also be due to the now public nature of the Whidbey previews.

Tuesday, April 13, 2004 11:11 AM by Paul Wilson

# re: MasterPages in .NET v1.* -- Dynamic Masters

here is another recent and related article:
http://www.devx.com/dotnet/Article/18011/0/page/1

Tuesday, April 13, 2004 11:40 AM by Srdjan

# re: ObjectSpaces to be Separate Package ?

ObjectsSpaces will not be added to Whidbey beta 1, however, it remains
part of the Whidbey/Yukon wave and will be made available as a downloadable
add-on pack for the .NET Framework version 2.0 shortly after Whidbey ships.

This is confirmed by the ObjectSpaces team at Microsoft.

Tuesday, April 13, 2004 2:09 PM by Fredrik Normén

# re: ObjectSpaces to be Separate Package ?

Agreed -- this has been confirmed multiple times in the last 10 days. Sorry I didn't update the reference to it being a rumor.

Tuesday, April 13, 2004 2:32 PM by Paul Wilson

# re: MasterPages in .NET v1.* -- Dynamic Masters

The 4GuysFromRolla article sure sparkled my interest...again. I've wanted to implement MasterPages for some time but never had the time. Hmm, thought it was more complicated that it was. Now when I had the time I wanted to see if I could learn some from it so I dissected the Microsoft sample, translated it into VB.NET, but still ended up using Pauls version. My trials are found here http://www.pdc.se/blog/DisplayEntry.aspx?eid=13
Anyway, thanks Paul for some great work.

Friday, April 16, 2004 10:10 AM by Patrik Dahlén

# re: Visual Source Safe, MVP Summit, and NDA Info

Speaking of SourceGear's Vault product, what are peoples opinions of it? How well does it work in a remote development environment? Would you recomend switching to Vault, or waiting for MS to upgrade VSS?

Thanks
CT

Friday, April 16, 2004 12:37 PM by ctadlock

# re: Visual Source Safe, MVP Summit, and NDA Info

We've been using Vault for the better part of a year now and love it. Working with it remotely is faster than SS ever was working across a LAN. Additionally, since SourceGear is a small ISV, they are able to respond quickly to their customers' needs.

I have no idea what the future holds for SourceSafe so I can't say I would never go back. But, it would require a huge change before I would consider using it again.

Friday, April 16, 2004 12:55 PM by Doug Lott

# re: Visual Source Safe, MVP Summit, and NDA Info

I would recommend most anything over VSS right now. Will that change -- I hope so but I honestly don't know much else.

Friday, April 16, 2004 1:18 PM by Paul Wilson

# re: Going Independent Finally

Congratulations - judging by the service you give the community - you'll have a rip roaring success on your hands

Friday, April 16, 2004 1:49 PM by David Miles

# re: Going Independent Finally

Congratulations. I've been independent for about 3 years and have no plans of going back to the daily grind. It's a great life as long as the pipeline is full and the bills are paid. :-)

One bit of advice...get a good accountant.

mike

Friday, April 16, 2004 1:52 PM by M. Eaton

# re: Going Independent Finally

Congratulations!!! One day, it'll be me. :)

Friday, April 16, 2004 1:52 PM by Jeffrey Palermo

# re: Going Independent Finally

Congrats, I have been doing it for 2 years and 6 days now; best decision I made!

Friday, April 16, 2004 1:56 PM by M. Keith Warren

# re: Going Independent Finally

Congrats. I have been doing it for 4 1/2 years and I hope I never have to be full time again.

Friday, April 16, 2004 1:57 PM by Paul Speranza

# re: Going Independent Finally

Congrats!

I made the switch last September and my only regret was not doing it sooner.

Best of Luck!

Friday, April 16, 2004 1:59 PM by Frank

# re: Going Independent Finally

Good deal Paul. I can totally relate to the atlanta traffic. I spend an hour and a half in it every day as well. (on a good day).

I looked for you at DevDays last month in ATL, wanted to introduce myself. Oh well, always time for that some other day.

Friday, April 16, 2004 2:09 PM by Darron

# re: Going Independent Finally

Congratulations! From what I've observed, I'm sure you will do very well.

I came very close to going independent last fall when my contract with WebMD was coming to a close. Instead, I took a job with a very small company (I'm employee #4). I guess it's almost like being independent. The office is 1 hour away from where I live, on the other side of Nashville, TN. But, I get to work from home one day a week, which is very nice.

Friday, April 16, 2004 2:17 PM by David Neal

# re: Going Independent Finally

Congratulations! :)

Working in/for your own company is much nicer than working for others :) I've my own company now for 7 years and I'll never ever go back :)

As said before: get a good accountant.
Another tip: never trust on 1 client. You're still a contractor, so if you can manage it, get another client. You wouldn't be the first who gets out of business as fast as getting in business because of the fact that their initial client goes out of busines, ends the contract etc. and they never paid attention to getting new clients.

Friday, April 16, 2004 2:20 PM by Frans Bouma

# re: Going Independent Finally

Good going Paul. I was surprised you hadn't done it sooner. I also would like to reiterate what Frans said about a good accountant. A good one will cost you a few $ but will save you even more.

-Mathew Nolton

Friday, April 16, 2004 2:59 PM by Mathew Nolton

# re: Going Independent Finally

Good news. I wish you all the best. I have my own software company for over 14 years now and I don't regret it. I hope, you'll be able to keep up the good work on WilsonOrMapper!

Friday, April 16, 2004 3:04 PM by René van den Berg

# re: Going Independent Finally

Take care.

IRS has strong rules for Indepent Contract vs. Employer.

It's better for you to have more that one client to be corp., otherwise you will be under hidden employment.

Friday, April 16, 2004 3:28 PM by AT

# re: Going Independent Finally

Great move Paul! I hope you will let us know from time to time how things are going. BTW, why an S-Corp and not an LLC?

Friday, April 16, 2004 3:30 PM by Philipp

# RE: Going Independent Finally

Congrats! I can't wait for the day when I can make the same move!

Friday, April 16, 2004 3:58 PM by Steve

# re: Going Independent Finally

Congrats, Paul. When I lived in Atlanta I enjoyed the heck out of riding Marta everyday to from Buckhead to Five Points station downtown. But hey, it still doesn't beat working for yourself. There's nothing like coding out of your home office!

Friday, April 16, 2004 5:00 PM by Dave Burke

# re: Going Independent Finally

Congrats, Paul!

Friday, April 16, 2004 6:39 PM by Chris Frazier

# re: Going Independent Finally

Why an S-Corp? That's what my CPA and several other independent friends all recommended. It sounded like it had some serious tax advantages, although a little more overhead, but that's the CPA's job.

Friday, April 16, 2004 8:29 PM by Paul Wilson

# re: Going Independent Finally

Congrats too Paul. I went "independent" back in 1987, so I know what you mean. I too immediately thought LLC as I've been advised against S-corp in the past. Curious why the specific benefits are to you on S-corp vs. LLC.

Saturday, April 17, 2004 2:33 AM by Mike Schinkel

# re: .NET GC Best Practice -- ALWAYS Call Dispose

SqlConnection.Close() puts the connection back to the pool. You can reopen it later by using Open().
If you use SqlConnection.Dispose() it releases the ConnectionString, so you CAN'T open it again. That's the main difference.

Saturday, April 17, 2004 2:02 PM by Zsolt Soczo

# re: Sorting and Paging Recordsets in SQL Server

Hi! Excellent fantastic work! You've made my day as I was experiencing with paging scripts but the only solution I came up with supporting DESC and filtering doesn't perform very well. I probably would have spend the next days coming up with something like yours. Thanks very much!

Saturday, April 17, 2004 7:47 PM by theintrepidfox@hotmail.com

# re: Going Independent Finally

And congratulations once again. A lot of success and fun to you on your new course!

Sunday, April 18, 2004 5:15 PM by Alex Thissen

# re: Thanks to Contributors of WilsonORMapper v2.1

All this and you still have one week still to work at your "job".

Monday, April 19, 2004 10:22 AM by Jeff Berg

# re: Thanks to Contributors of WilsonORMapper v2.1

Two weeks actually. :)

The cool thing is that I only had to "integrate" the changes from others for this release, along with one bug fix. That's not necessarily always trivial, and in fact there was some work to do, but its really cool to not have had to do it all myself!

Monday, April 19, 2004 10:27 AM by Paul Wilson

# re: VB.NET v2.0: Operators, Using, Unsigned Types, and More

So do we get multiple inherits as well

Monday, April 19, 2004 3:29 PM by bisa1

# re: VB.NET v2.0: Operators, Using, Unsigned Types, and More

No -- but neither does C#. Try Effiel for .NET if you need it.

Monday, April 19, 2004 5:16 PM by Paul Wilson

# re: Going Independent Finally

Good to hear Paul, with the amount of work you shared with us you certainly deserve it!

Tuesday, April 20, 2004 1:28 AM by Paul Gielens

# re: Going Independent Finally

Congrats - it's almost like being set free!

Wednesday, April 21, 2004 3:44 AM by David Yack

# re: House For Sale in Woodstock (Georgia)

Do you think it's fair to post this on the main weblogs feed? I have enough junk to filter through without your classified ad. *sigh*

Sunday, April 25, 2004 3:50 AM by AJ

# re: House For Sale in Woodstock (Georgia)

Post pictures! I'm not interested, but I'll ogle them for new ideas for my house due in December. :-)

Sunday, April 25, 2004 3:54 PM by Rachel Reese

# re: .NET v2.0: Serial Port Communications Finally Arrives

Microsoft's improving. Usually they're 10 years late and 100 dollars short. Now they're only 1 year late and 10 dollars short.

Monday, April 26, 2004 12:32 AM by NiceHairpieceFrank

# re: .NET v2.0: Serial Port Communications Finally Arrives

The funny thing was that I was just investigating this because I was having the dickens of a time figuring out how to talk to the serial port with VB.NET 2003, which I now really regret shelling out $100 for. Best to wait and download the .NET 2.0 framework and write the code in C# entirely from friggin notepad.exe. Or better yet, use Mono/Java on Unix. MS doesn't piss me off nearly as much when I don't have to pay for their perpetually half-baked software.

Monday, April 26, 2004 12:43 AM by NiceHairpieceFrank

# re: House For Sale in Woodstock (Georgia)

AJ, it's a BLOG and ..... throwing water on my own flame. Moving on.

Tuesday, April 27, 2004 12:46 PM by blog coward

# re: MasterPages in .NET v1.* -- Dynamic Masters

Generally a great tool, but I'm still finding it very hard to programmatically set my header titles at runtime from a code behind class, whilst everything else seems to work as advertised.

If I try to use a Literal I find that it's .Text property is
always empty - I assume that I'm sending it the title string too late(?)

Are there any docs lying about that give a good example of this?

Tuesday, April 27, 2004 7:17 PM by Scott

# re: MasterPages in .NET v1.* -- Dynamic Masters

I can't say what you're doing wrong without seeing your code, but almost everyone one of my many examples show techniques to get your titles working, and there are multiple ways.

Tuesday, April 27, 2004 8:16 PM by Paul Wilson

# re: Interesting SQL Dilemma -- Need Help

INSERT INTO TestIds VALUES (newid()) ?

Thursday, April 29, 2004 11:42 AM by Wilco

# re: Interesting SQL Dilemma -- Need Help

*smack*, *mumble* read before reply *mumble*

Thursday, April 29, 2004 11:44 AM by Wilco

# re: Interesting SQL Dilemma -- Need Help

INSERT INTO [TestIds] DEFAULT VALUES
GO

Thursday, April 29, 2004 11:54 AM by Darshan Singh

# re: Interesting SQL Dilemma -- Need Help

Just wondering the purpose of the table...

The Jeff

Thursday, April 29, 2004 11:57 AM by Jeff Berg

# re: Interesting SQL Dilemma -- Need Help

Thanks Darshan -- that works great for MS SQL.

Now, is there a solution for Access also?

And Jeff -- no real reason other than someone told me that my mapper didn't support it. :)

Thursday, April 29, 2004 12:03 PM by Paul Wilson

# re: Interesting SQL Dilemma -- Need Help

SET IDENTITY_INSERT TestIds ON
INSERT INTO TestIds (TestId) VALUES (1)
SET IDENTITY_INSERT TestIds OFF

Should do the trick.

Thursday, April 29, 2004 12:29 PM by Scott Galloway

# re: Interesting SQL Dilemma -- Need Help

Sorry Scott, but I actually want the identity inserted if that wasn't clear -- I don't want to turn it off and insert an explicit number.

Thursday, April 29, 2004 12:34 PM by Paul Wilson

# re: Interesting SQL Dilemma -- Need Help

CREATE PROC usp_createID AS
BEGIN
INSERT INTO testids DEFAULT VALUES
SELECT @@IDENTITY
END
GO

EXEC usp_createID

Thursday, April 29, 2004 12:45 PM by Jason Sherron

# re: Interesting SQL Dilemma -- Need Help

OK thanks Jason. What if its an Access table?

Thursday, April 29, 2004 12:52 PM by Paul Wilson

# re: Interesting SQL Dilemma -- Need Help

Paul - for Access, chances are they're using an "AutoNumber" field for a primary key...this should work

INSERT INTO TestIDs (TestId)
SELECT MAX(TestID) + 1 AS IdValue FROM TestIDs

Even though it's an AutoNumber it will still let you specify a value to insert...so you could always insert a value that's one higher than the greatest using Max()...not sure if that's ANSI compliant or not though.

Thursday, April 29, 2004 12:54 PM by Jason Mauss

# re: Interesting SQL Dilemma -- Need Help

Although SELECT @@IDENTITY does work for SQL Server, you should really use:

SELECT SCOPE_IDENTITY()

because @@IDENTITY does not work properly if you have certain types of triggers on your table.

Thursday, April 29, 2004 1:03 PM by ksuh

# re: Interesting SQL Dilemma -- Need Help

The problem is that Access isn't really a database. That's why it can't do a lot of things you take for granted with real database engines.

Thursday, April 29, 2004 1:10 PM by Jerry Pisk

# re: Interesting SQL Dilemma -- Need Help

Thursday, April 29, 2004 1:51 PM by Jason Sherron

# re: House For Sale in Woodstock (Georgia)

AJ: I agree with you that the main feed is polluted.

Although, I like to read this kind of stuff sometimes, it should be filterable through categorization. My vote is in for the ".net related" category.

Paul: congrats on the new house!

Thursday, April 29, 2004 2:31 PM by colin

# re: Interesting SQL Dilemma -- Need Help


FWIW, as the guy who reported this issue, it's possible for an entity to only play 1:m relationship roles with other entities. In this case the entity would consist of the key and one or more collections.

The case I reported was for type entity. A customer has a m:1 to it's type and it's type has a 1:m to all customers of that type. In this case the customer type played no other functional roles so the entity consisted of the key CustomerType and the collection Customers.

jMM

Thursday, April 29, 2004 3:18 PM by John M. Miller

# re: Interesting SQL Dilemma -- Need Help

So John, since you've came public :)
I know in your case you seemed to indicate that the read-only option was sufficient, but I'm thinking I should cover all scenarios. Obviously it will work if the single field is not an identity, but I don't want to make it doable in MS SQL for this bizarre case, while still leaving it unsupported for Access. Yes, I still have no solution for Access, since the support doc didn't seem to apply that Jason posted. So right now I'm not going to try to resolve this scenario, although I'll change my mind if I can ever get the Access case to work -- what do you think ?

Thursday, April 29, 2004 3:42 PM by Paul Wilson

# re: Interesting SQL Dilemma -- Need Help

"And Jeff -- no real reason other than someone told me that my mapper didn't support it. :)"
heh, sounds very familiar. :) These tables are not useful btw, in any scenario, as it is just a number, there is no data identified by the number.

"A customer has a m:1 to it's type and it's type has a 1:m to all customers of that type. In this case the customer type played no other functional roles so the entity consisted of the key CustomerType and the collection Customers. "
I wonder why you add the type at all. Perhaps a description field is appropriate, so you can specify which type a customer is :) (which will automatically solve your problem). Otherwise setting the type is problematic as the specification of the type is based on a number, but what that number means is vague.

Thursday, April 29, 2004 3:52 PM by Frans Bouma

# re: Interesting SQL Dilemma -- Need Help

Paul - what about the thing I posted for Access? It won't work?

Thursday, April 29, 2004 4:12 PM by Jason Mauss

# re: Interesting SQL Dilemma -- Need Help


In my senario the key was not an identity but rather a user defined value. Further there is no CustomerType table. The customer type entities are derived from the unique values of customer type in the customer table.

Yes of course adding a functional description role to customer type resolves the issue by forcing the creation of the customer type table with at least two columns. But I think my senario is realistic and need it to be supported.

It's possible that someone would want to control the possible values of customer type by forcing customer type into an independent table consisting of a single key column.

While it's also possible for the key to be a surrogate key, given the difficulty in supporting this variation of the senario and it's unlikeliness, plus the fact that I would never need it :), I see no reason to support it. Whenever possible, I preserve any existing uniqueness constraints when introducing a surrogate key, which would introduce a functional role and resolve the issue.

jMM

Thursday, April 29, 2004 4:37 PM by John M. Miller

# re: Interesting SQL Dilemma -- Need Help

Is it just me or is anyone else severely confused by what John Miller is doing here and what Paul is saying he was asked to support? What point is there in having a key value if it doesn't point to anything?

Thursday, April 29, 2004 4:51 PM by Jason Mauss

# re: Interesting SQL Dilemma -- Need Help

Everyone: I can see the value of the single field that is user defined, and it looks like that's all John was really after anyhow, although I too can't really claim to fathom all of his statements. :) I wasn't trying to say someone (John in this case) had asked for me to support this specific case -- I was just saying someone had asked for something that was similar enough to make me realize I was not able to handle this case either. Like most of us, I then became too curious to forget it. :) I've actually seen people have a table with identities that they used to get a unique key for other tables without identities, kind of like sequences in Oracle, although I think those tables always had a second "junk" column too -- now I know why.

Jason M.: There are actually 2 different Jasons posting things, so sorry that I just referred to Jason earlier. Your solution is certainly "doable" if that's the best Access can offer, although I was really hoping for something better I suppose. Afterall, even Access supports @@Identity, although that's not really going to work either in a situation with multiple inserts at the same time. So maybe I will use it, but I think I'm just leaning to saying why bother with this one.

Thursday, April 29, 2004 5:25 PM by Paul Wilson

# re: Interesting SQL Dilemma -- Need Help


To clarify for those having trouble fathoming my earlier posts <g,d&r>

Given these requirements:

Every Customer is identified by one distinct Id. Each Customer is assigned some Customer Type. Each Customer is assigned at most one Customer Type.

Every Customer Type is identified by one distinct Code.

Examples:
Customer Acme is assigned Customer Type RENT.
Customer Bender is assigned Customer Type SALE.
Customer Carter is assigned Customer Type SALE.
Customer Demble is assigned Customer Type RENT.

These requirements can be implemented in a Customer table with a CustomerId column and a CustomerTypeCode column where Customer Id is unique.

A business object representation of these requirements would consist of a Customer class with a Id property, and a CustomerType property which is a reference to a CustomerType object.

The CustomerType class consists of a Code property and a collection of Customers.

You could argue that the Customer class needs a CustomerTypeCode property, but I would argue that it's the persistence engine responsibility to populate foreign keys. But thats another thread. <s>

There is no need for a ClientType table to meet these requirements. Also, the ClientType class has a structure that WORM currently cannot handle. A class with the key as the only property.

jMM

Thursday, April 29, 2004 7:19 PM by John M. Miller

# re: Sorting and Paging Recordsets in SQL Server

Great stuff!
I spent last couple of hours looking for something similar and I could see this proc working very well in my project.

Thanks!

Thursday, April 29, 2004 8:11 PM by AcidJazz

# re: Convert.ChangeType does not support Guids

There's a nasty one associated with DataTable as well. ADO.NET will let you assign a text string to a GUID column of a DataTable, but then crashes with the casting error when you attempt to save it.

I reported this under 1.0 and it came back "by design" - you do wonder who designs this stuff sometimes :-)

Friday, April 30, 2004 5:40 AM by Paul Hatcher

# re: ASP.NET v2.0: Posting to Other Pages is too Limited

Cross server posting is an absolute essential for us to be able to fully take ASP.Net on board.

Lack of the facility severely limits the amount of inter-application integration that we can do. Going into a .asp file to cross the border is rather ugly.

Friday, April 30, 2004 11:02 AM by Ian Turner

# re: Going Independent Finally

Congratulations! I hope to do the same someday...

Friday, April 30, 2004 7:20 PM by Phil

# Testing with Databases

Saturday, May 01, 2004 5:40 PM by TrackBack

# re: What Exactly is the Point of O/R Mappers ?

Paul,

You are really not talking about O/R mapping here but about any tool that allows you to map a relational database to .NET componentes.

I mean, DeKlarit is not an O/R mapping in the strict technical sense and it has all the same advantages you described (and it does not have any of the shortcomings that Andrew Conrad described in his post ;).

Sunday, May 02, 2004 6:20 PM by Andres Aguiar

# re: What Exactly is the Point of O/R Mappers ?

Hey Andres:

I agree 100% that what I said does not have to apply only to O/R Mappers. Sorry if it seemed that was the inference -- my point was to talk about O/R Mappers, not to imply they were the only choices. I also mostly agree with you that DeKlarit has the same benefits, as I noted in my review of it last year (see http://authors.aspalliance.com/paulwilson/articles/?id=18). That said, I do have some fears that DeKlarit forces too much "lockin", although I heartily recommend it in some cases. My personal opinion is that DeKlarit makes a great prototyping tool, but that a good O/R Mapper is much easier to use, with less lockin, in many cases.

Thanks, Paul Wilson

Sunday, May 02, 2004 8:29 PM by Paul Wilson

# re: What Exactly is the Point of O/R Mappers ?

>That said, I do have some fears that DeKlarit
>forces too much "lockin", although I heartily
>recommend it in some cases. My personal
>opinion is that DeKlarit makes a great
>prototyping tool, but that a good O/R Mapper
>is much easier to use, with less lockin, in
>many cases

We can discuss about this another time... TechEd could be a good place ;)

Regards

Monday, May 03, 2004 10:04 AM by Andres Aguiar

# re: What Exactly is the Point of O/R Mappers ?

IMO the real answer inherent in the intrusiveness of OR Mappers is that they are a kludge. They are a product of the lack of market penetration of Object DB's and the lack of standardization of Object Query Languages. If we agree that we want to program in Objects, it follows that our data should be Objects.

Monday, May 03, 2004 1:51 PM by Mike

# re: What Exactly is the Point of O/R Mappers ?

Mike: That sounds good in theory, but its not real life. Why? Developers are the only ones that want objects -- the business wants data that can be queried any way they may want -- in other words relational data.

Monday, May 03, 2004 2:25 PM by Paul Wilson

# re: What Exactly is the Point of O/R Mappers ?

My ignorance is showing here, no doubt, but what kind of data cannot be represented as objects? We decided to adopt objects and your framework because dealing with data in C# was just too painful. And now though I'm waiting for Object Spaces, I can't help but think how nice it would be to get rid of the mapping between me and the information I want to represent.

Tuesday, May 04, 2004 12:04 AM by Mike

# re: What Exactly is the Point of O/R Mappers ?

I wasn't trying to say there was some data that could not be represented as objects if that's what it sounded like. I meant to say that business people could care less about objects -- they want to see and query data. Putting raw objects into a "database" is great for developers, but it makes query and reporting tools next to impossible, and most businesses need to get to the data outside of your applications and its definition of objects. True, OODB have mechanisms to get around this problem, but they tend to not work very well in real life -- its just shifting the object-relational mismatch somewhere else, and to a place that is far worse far business users. There is a reason OODBs haven't been successes -- they solve developer needs while leaving business needs worse than RDMSs do.

Tuesday, May 04, 2004 9:20 AM by Paul Wilson

# re: What Exactly is the Point of O/R Mappers ?

Thanks for the clarification Paul.

Tuesday, May 04, 2004 12:51 PM by Mike

# re: O/R Mappers: Avoiding Reflection

Why not to save property info object for any BusinessEntity in shared hashtable and retrieve it from there when ever we need to set the value for any property through reflection.

Tuesday, May 04, 2004 3:49 PM by Murad Kayani

# re: O/R Mappers: Avoiding Reflection

As Steve noted, and I verified, most of the performance hit occurs when actually "using" reflection, regardless of whether or not the reflection "object" was reused or not. I actually do reuse the reflection "objects" to get the small amount of efficiency this provides, but its simply not at all the same as direct access, so I must recommend the interface approach when performance is really needed.

Tuesday, May 04, 2004 4:24 PM by Paul Wilson

# re: Going Independent Finally

What, no more Citrix!? After chatting with you at the Summit I had gotten to wondering what happened; glad to hear it is working out well for you. Congratulations on your bold step, I'm sure you won't be sorry!!

Tuesday, May 04, 2004 4:34 PM by Terri Morton

# re: What Exactly is the Point of O/R Mappers ?

Paul can you clarify what you mean by 'Another feature of O/R Mappers is greater flexibility in your search and sort functionality'? I would say that exactly the opposite is true for me. The search capabilities to retrieve focused content that may not exactly map your object schema defined (think lookups and lists with only a couple of display fields) or bring back denormalized results in RDBMS code is pretty tough to map to an OR mapper. You can do this, but at what performance and complexity penalty?

Wednesday, May 05, 2004 3:55 PM by Rick Strahl

# re: O/R Mappers: Avoiding Reflection

Yes Paul, you are right, I tested that and there is a small performance gain you get, but during the test, I found one interesting thing that if you set private member through reflection it takes a lot more then setting public member, any idea why it is so?

Wednesday, May 05, 2004 4:15 PM by Murad Kayani

# re: O/R Mappers: Avoiding Reflection

Yes that was also noted in earlier results by Steve -- I believe security was suggested as the reason since you have additional security checks to see if you can reflect on private members.

Wednesday, May 05, 2004 5:00 PM by Paul Wilson

# re: What Exactly is the Point of O/R Mappers ?

Well I was assuming a comparison to a stored proc based system, and in that case you can only search and sort on what has been exposed through your stored procs. So the gain in flexibility would be true for any dynamic sql based system, not just O/R mappers.

Wednesday, May 05, 2004 5:02 PM by Paul Wilson

# re: VB.NET v2.0: Generics are Supported in VB Also

I think the syntax is just fine.

Thursday, May 06, 2004 8:31 AM by Michael Ferrini

# re: Going Independent Finally

Question for you Paul and anyone else who has the knowledge. I like many of you have the dream of going independent soon. One of my main concerns is health insurance. If you work for yourself and don't have any employees under you, how/where do you get your health insurance? Regardless, it is expensive as heck, right? If anyone has any tips and can either post them here or email me at
rhino200 @comcast.net (no space), I'd appreciate it. thanks

Thursday, May 06, 2004 12:08 PM by Ryan

# re: Going Independent Finally

I'm getting my through my wife -- at least for now.

Thursday, May 06, 2004 1:50 PM by Paul Wilson

# re: MasterPages in .NET v1.* -- Dynamic Masters

Paul,

I think your new and improved MasterPages implementation is fantastic, but I still have some reservations about performance. I've compared the new MasterPages approach with your page templating examples (using both direct render and user controls) and found that there general "slugish" feel to how pages load when using MasterPages. Looking at the trace output, the MasterPages approach is about 2-2.5 times slower than your other templating techniques. The aspx pages just don't have the same snappy feel with MasterPages. I was just wondering what your thoughts were on that?

Thanks again for your work on this.

Saturday, May 08, 2004 6:56 PM by James High

# re: MasterPages in .NET v1.* -- Dynamic Masters

Hi James:

There's no doubt it is "slower", although everything is relative to some degree. The direct render approach is definitely the "fastest" possible, since it totally avoids the performance "hit" of server controls, but it also offers the least design experience. The user control technique is a little faster than master pages since it doesn't have to rearrange the control tree, but it still lacks some flexibility that master pages provides. So the question really comes down to what is the performance "hit"? If you only compare the simplest of pages with the simplest of templates then the user control approach is about 30% slower and I think I recall master pages was about 60% slower. But that's not the whole picture at all -- there is typically much more going on then the simplest cases. I've found through experience that the performance "hit" on real-world pages, especially when there are things like database connections, is actually pretty neglible. Also, as a final comparison, even the simplest 60% slower master page is still faster than the equivalent classic ASP page since ASP.NET is compiled! So yes, master pages are "slower", but I haven't found it to be a concern when you look at the bigger picture -- and I believe my website proves it since it runs on master pages. In the end though, you have to do the tests and decide for yourself.

Thanks, Paul Wilson

Saturday, May 08, 2004 7:26 PM by Paul Wilson

# re: Microsoft's Free PocketPC Offer

I have VS 2003

Monday, May 10, 2004 6:18 AM by Mutlaq

# re: SQL Server Yukon and .NET Programming Features

Monday, May 10, 2004 6:35 PM by stefan demetz

# re: Changing ASP.NET Forms Authorization Redirection

Wouldnt it be less costly to check for this on your login page?

Tuesday, May 11, 2004 12:25 PM by M. Keith Warren

# re: Changing ASP.NET Forms Authorization Redirection

The point is that I do NOT want to be redirected back to the login page. Now you could have your login page dynamically change from being a login page to a page that tells the user they aren't authorized, if that's what you mean -- but that's not really the behavior I want.

Tuesday, May 11, 2004 12:28 PM by Paul Wilson

# re: Changing ASP.NET Forms Authorization Redirection

More alluding to the fact that you could check at the load of the login page to determine if the user is authed and if so then transfer them to the appropriate 'you got no access' page.

In this case you are only using cylces for this logic in the case that your user happens to actually come across a page while having insufficient credentials, whereas in the GASA event you run the logic for every single request.

Tuesday, May 11, 2004 12:35 PM by M. Keith Warren

# re: Changing ASP.NET Forms Authorization Redirection

OK, I'll buy that. It does also simplify the logic:
if (this.Request.IsAuthenticated) {
this.Response.Redirect("~/Login/Unauthorized.aspx");
}

Tuesday, May 11, 2004 12:57 PM by Paul Wilson

# RE: Changing ASP.NET Forms Authorization Redirection

Tuesday, May 11, 2004 1:58 PM by TrackBack

# re: Changing ASP.NET Forms Authorization Redirection

I've run into this problem before and couldn't find a built in solution so I placed the authorization logic in a base page while having asp.net responsible for authentication. The inheriting page overrides an abstract method that returns the allowed roles. Not the best solution since an access change requires a recompile but in most apps I've come across this isn't often. Hopefully this will be addressed in asp.net 2.0

Wednesday, May 12, 2004 11:45 AM by Jason Nesbitt

# re: MasterPages Template Properties in .NET v1.*

Hi,

I can't seem to get this to work, I believe my problem is I don't have a control named <control id>_Template on my page

Could you email me if you have a solution to this?

gabrielhesse @ hotmail.com

Wednesday, May 12, 2004 10:09 PM by Gabe

# re: Weird Session State Problem and Computer Names

I don't think you can blame MS on this one, but the IETF:
Quote from RFC2821:
To promote interoperability and consistent with long-standing
guidance about conservative use of the DNS in naming and applications
(e.g., see section 2.3.1 of the base DNS document, RFC1035 [22]),
characters outside the set of alphas, digits, and hyphen MUST NOT
appear in domain name labels for SMTP clients or servers. In
particular, the underscore character is not permitted. SMTP servers
that receive a command in which invalid character codes have been
employed, and for which there are no other reasons for rejection,
MUST reject that command with a 501 response.

This probably also should be true for all DNS names. My guess is that MS conformed to this standard.

Reinhard

Thursday, May 13, 2004 4:50 AM by Reinhard Brongers

# re: MasterPages Template Properties in .NET v1.*

Turn on tracing to see what you can "find" -- it will be the master, not one of the regions.

Thursday, May 13, 2004 5:40 AM by Paul Wilson

# Diogenes Revisited: Looking for an Honest Data Reporting Solution

Diogenes Revisited: Looking for an Honest Data Reporting Solution

Friday, May 14, 2004 4:03 PM by TrackBack

# Experience with New Client and Other Happenings

Friday, May 14, 2004 4:05 PM by TrackBack

# re: Experience with New Client and Other Happenings

Paul,

Actually doing the odd things is where you find where the best laid plans of mice and men fail.

Sounds like an interesting project and client. My current client is like that also. He gives me just enough rope to hang myself sometimes, which gives me a chance to try alot of things.

Maybe he just likes to watch me dangle a little.

Paul

Friday, May 14, 2004 7:21 PM by Paul Speranza

# re: Experience with New Client and Other Happenings

Dude you have such a nice place! I envy the appearant quality of life you guys have. If I wanted something similar I'd have to drive an hour to work - or pay 800K +

Friday, May 14, 2004 8:58 PM by Thomas Wagner

# re: Experience with New Client and Other Happenings

I enjoy hearing about what you're doing with the O/R mapper, robust business layer, hashed password, and so on in a working environment. Thanks for the update.

Friday, May 14, 2004 10:16 PM by Dave Burke

# Beware of NOLOCK...

Beware of NOLOCK - it generally turns out to not be nearly as good of an idea as it initially appears. If you find that your large queries are causing lots of contention (because readers block writers, in a lock-based DBMS like SQL Server), the typical SQL Server solution is to set up log shipping to a second database, and run your large queries there instead.

Saturday, May 15, 2004 10:13 PM by Kyle Cordes

# re: .NET v2.0: Serial Port Communications Finally Arrives

Cool work. :)

Monday, May 17, 2004 11:18 PM by yhhuang

# re: Changing ASP.NET Forms Authorization Redirection

I've faced the same situation, but the solution you provide is not working in all cases.
Let's say you want to add a link "Connect using another login" to the Login page on the "Unauthorized" page. In that case, IsAuthenticated is always true, and that prevents the access to the Login page to reconnect. Unless your link performs a postback and signs out.

What I ended with is the following:
- In web.config, the loginUrl is the Unautorized page.
- The user gets redirected to that page when he tries to access a page without being authenticated AND when he tries to access a page without the right permission.
- The Unauthorized page has to links : "Go back" and "Connect using another login".
- If the user accesses the application through the Login.aspx URL, he doesn't see the Unauthorized page. Of course, if he tries to access another page without being authenticated, he will see the Unauthorized page.

Let's hope the ASP.NET team cooked something better for the next version!

Tuesday, May 18, 2004 9:52 AM by Fabrice

# re: Changing ASP.NET Forms Authorization Redirection

Excellent comments Fabrice. Thanks.

Tuesday, May 18, 2004 11:12 AM by Paul Wilson

# re: MasterPages in .NET v1.* -- Dynamic Masters

Not sure I understand this. where is the logic to decide which template.ascx is used?

for example, if I have a button on the DefaulTemplate.ascx which i want to click to switch templates of _any_ page (e.g. to view the same page using PrintableTemplate.ascx), am i supposed to make this switch somewhere between the buttonclick and the Init event?

so where do i override the AddParsedSubObject method? in the DefaulTemplate.ascx codebehind?

or on each page?

Tuesday, May 18, 2004 6:32 PM by robert w

# re: MasterPages in .NET v1.* -- Dynamic Masters

You override the AddParsedSubObject method of the page, or a common base page to do it for an entire site. As to the logic, that's up to you, as everyone's will be different, but you do need to realize that you cannot do it in an event. Why? Because they all occur too late in the page lifecycle, and you need to do this even before the Init method/event in the AddParsedSubObject method. Sound impossible? Not if you recall your classic ASP, where you used the Request collections, like Form or QueryString, since you can easily check those values as early as you want. For instance, on my site, I have a drop-down that has an auto-postback, but I don't handle it in the changed event since that is too late -- instead I look for the appropriate Request.Form["xxx"] value.

Tuesday, May 18, 2004 8:18 PM by Paul Wilson

# re: How Many Days Until my Big Event

That page is entirely too depressing to ever think about again.

Tuesday, May 18, 2004 9:00 PM by Andy Smith

# re: How Many Days Until my Big Event

The only thing more depressing is the fact that I have 12,401 more days.

Not that I wish I was older - I just wish that day was sooner.

Tuesday, May 18, 2004 11:55 PM by Jerry Dennany

# re: How Many Days Until my Big Event

Woo hoo! Only 6,118 more days! I get to retire at 40, right?

Wednesday, May 19, 2004 12:14 AM by Alex Papadimoulis

# re: MasterPages in .NET v1.* -- Dynamic Masters

got it! i am using a linkbutton server control, then looking for its ID in the Request.Form["__EVENTARGET"] field, and makeing the switch that way.

thanks for your help!

Wednesday, May 19, 2004 11:16 AM by robert w

# re: Visual Source Safe, MVP Summit, and NDA Info

If we get to complain about Source Safe here, how come Shadow Folders dont update when you check in using VS.NET only when you manually check in using Source Safe itself??
JB

Wednesday, May 19, 2004 4:17 PM by Josh Bloom

# re: Observations on my Google Search Rankings

I've noted that as well. My site, <a href="http://www.safebitsolutions.com">Safebit Soltuions</a> is also suffering from similar issues. I've taken off my ASP articles to re do the site.

Wednesday, May 19, 2004 5:14 PM by Sid

# re: Experience with New Client and Other Happenings

Speaking of your ORMapper, would you ever consider putting up some kind of un-moderated forum on your site so that other users could help each other with issues that come up from time to time?

Thursday, May 20, 2004 11:16 AM by David

# re: Experience with New Client and Other Happenings

The problem is that I would get lots of spam if I just allowed any post through. Maybe I can change it in the future to allow logged in subscribers to automatically be approved. How does that sound?

Thursday, May 20, 2004 3:16 PM by Paul Wilson

# re: ASP.NET Security Puzzle -- Need Explanation

I don't know the reason yet, but I also had a similar issue, and I fixed it by running WWW service in IIS 5.0 isolation mode.

Thursday, May 20, 2004 3:39 PM by Manoj Agarwal

# re: ASP.NET Security Puzzle -- Need Explanation

Maybe some changed the ACLs on the web.config? - After you replaced it by a web.config from a different web everything was working fine again, so if the contents of the original web.config were similar or even identical to the other one AND you did not change the IIS settings, it may well be the file rights?

Thursday, May 20, 2004 3:47 PM by Marc Hoeppner

# re: ASP.NET Security Puzzle -- Need Explanation

Oh, and what about impersonation? - Do you use it in one of the web.configs or do you use the standard ASPNET user?

Thursday, May 20, 2004 3:49 PM by Marc Hoeppner

# re: ASP.NET Security Puzzle -- Need Explanation

I'm afraid I don't have any answers either, but I ran into a similar situation last year, which I solved in the same way (http://www.coolbits.nu/Code+Poet/Cool+Tips/83.aspx). I'll be interested in learning the magic combination of settings that causes this problem, if anyone ever figures it out.

Thursday, May 20, 2004 4:13 PM by Avonelle Lovhaug

# re: ASP.NET Security Puzzle -- Need Explanation

As far as I could tell all the permissions (acls) were the same, and there is no impersonation.

Thursday, May 20, 2004 4:18 PM by Paul Wilson

# re: ASP.NET Security Puzzle -- Need Explanation

Are you using accounts for which the passwords have been automatically expired?

Thursday, May 20, 2004 4:30 PM by Wim

# re: ASP.NET Security Puzzle -- Need Explanation

No, and I'm not using any Windows auth anyhow.

Thursday, May 20, 2004 5:12 PM by Paul Wilson

# re: ASP.NET Security Puzzle -- Need Explanation

Has Service Pack 4 for Windows 2000 been installed.

MS have added a new security role and it's turned off by default.

We had to change a few things. They were mostly dev servers set are incorrectly.

Thursday, May 20, 2004 5:51 PM by Blair

# re: Experience with New Client and Other Happenings

great!

Thursday, May 20, 2004 9:13 PM by David

# re: MasterPages in .NET v1.* -- Dynamic Masters

Paul or Robert W, do you guys have a more verbose example of the dynamic masters implementation?

Monday, May 24, 2004 8:52 PM by zerge k

# re: MasterPages in .NET v1.* -- Dynamic Masters

I'm not very good at verbose, but I've got a silly example (not very real-world) in the article download noted above on MSDN (the download has both a v2.0 and a v1.* example). Other than that, my site is of course a fully working real-world demo, and I think all of the pertinent code is actually in the free section, in the template directory.

Monday, May 24, 2004 9:04 PM by Paul Wilson

# re: MasterPages in .NET v1.* -- Dynamic Masters

well, i think i'm having the same problem as robert w had. where in my code do i make the template "switch"?
i have a base MasterPage class defined with the override AddParsedSubObject method per your implementation. i'm still confused though where do i listen for request and how do i change the TemplateFile of the Template control. could you post a little snippet?
i looked though your msdn whidbey example and still couldn't make sense.

Monday, May 24, 2004 9:33 PM by zerge k

# re: MasterPages in .NET v1.* -- Dynamic Masters

The AddParsedSubObject method must go in your page classes, or a common base page -- not in your master template. As for how do you make the switch, something like the following would work if you have a drop-down or cookie that has a client id of master:

protected override void AddParsedSubObject(object obj) {
base.AddParsedSubObject(obj);
if (obj is MasterPage) {
if (Request["master"] == "alt") {
((MasterPage) obj).TemplateFile = "~/AltTemplate.ascx";
}
else {
((MasterPage) obj).TemplateFile = "~/MainTemplate.ascx";
}
}
}

Monday, May 24, 2004 10:00 PM by Paul Wilson

# re: House For Sale in Woodstock (Georgia)

Is it still for sale? How much? pdubda@yahoo.com

Tuesday, May 25, 2004 3:22 PM by P. Woody

# re: ASP.NET: Links are often better than Postbacks

Craig's reason for complaining about links is actually a design flaw of Wiki, not a problem with links themselves. Wiki's problems with spiders such as google can be solved with a robots.txt file or a META tag. However, then the page won't get indexed by google. Thus, Wiki's design flaw.

Wednesday, May 26, 2004 10:14 PM by Jerry Dennany

# re: ASP.NET: Links are often better than Postbacks

Not all robots respect robots.txt or the META tags. I agree that it's a design flaw of the site, though, which is why we changed the rollback feature to be a button. There are, of course, other ways to handle it, but in general one should assume that any link on the page can and will be visited by something other than a human.

Wednesday, May 26, 2004 10:53 PM by Craig

# re: ASP.NET: Links are often better than Postbacks

I totally agree, Paul... i hate seeing code that postsback only to response.redirect immediately... seems horribly inefficient...

Thursday, May 27, 2004 12:20 AM by Eric Newton

# re: ASP.NET: Links are often better than Postbacks

A reader asked by email for clarification:

I don't know if "race condition" is a good description, but I went with that term since that was what Eron called it. Here's what Eron says in his comments:

Postbacks within DataGrids do not exhibit the race condition if ViewState is enabled and the DataKeys collection is used. Another solution is to persist the DataKeys collection outside of the DataGrid control itself; in that way ViewState can be disabled for the grid as a whole but the keys are tracked.

I couldn't say it any better. Basically, if you disable viewstate, which is common on grids since the viewstate is so large, then things can get out of sync if data is changing. The postback simply says to do something (approve or delete or whatever) a certain item in the grid by its position -- and that position may not be the same if the data has to be requeried! I've actually even deleted the wrong post in the forums because of this. As Eron noted, there are other solutions, although most people either have very large viewstates with grids, or disable it and potentially get things out of sync.

Thursday, May 27, 2004 11:26 AM by Paul Wilson

# re: Visual Source Safe, MVP Summit, and NDA Info

Frans, you call it "using the tool wrong", the rest of the world calls it "big databases, multiple-users, decent branching support are all features that any source control product should handle gracefully."

Tuesday, June 01, 2004 6:18 PM by Richard P

# re: Microsoft's Free PocketPC Offer

how do you get it? that link was bad and it didnt say anythink on the microsoft website.

Wednesday, June 02, 2004 11:36 PM by Steve Ratzlaff

# re: Microsoft's Free PocketPC Offer

It was an offer that long ago expired -- it was about VS.NET 2003 -- and its 2004 now.

Thursday, June 03, 2004 6:44 AM by Paul Wilson

# re: Real World Development Environment

Show how small/middle companies realy work: What Source Control? How many DB (Testing DB, Production DB, Stage DB)? What Quality Assurance?

Friday, June 04, 2004 1:08 PM by Mathias Fritsch

# re: Looking for ASP.NET Article Ideas

I can relate to all of that except for the source control part -- afterall VSS (Visual SourceSafe) is free even if it isn't great.

Friday, June 04, 2004 2:37 PM by Paul Wilson

# re: .NET v2.0: Serial Port Communications Finally Arrives

Is this available on the Compact Framework??

Monday, June 07, 2004 8:52 PM by Mike

# re: .NET v2.0: Serial Port Communications Finally Arrives

I honestly have no clue, and since we're talking about a product not even in beta yet I'm also not sure its really possible to know yet anyhow. It would makes sense though!

Monday, June 07, 2004 9:01 PM by Paul Wilson

# re: .NET GC Best Practice -- ALWAYS Call Dispose

The IDisposable pattern has left it open for class library designers whether to have an alternately named method or simply have Dispose. If the design warrants a domain-specific method name (i.e. Close for streams), the intent than is to explicitly implement the interface so that not both Dispose and Close are available when viewed as the object's type. If casted to IDisposable, than Dispose becomes available.

In the case of the SqlConnection class, the designers did not follow that guideline, but made both Close and Dispose available with slight differences in behavior. Although, I recognize the goal was to allow reopening the connection, it has actually led to far more confusion than reaping the benefits, IMO. Add to it that earlier MSDN documentations incorrectly stated that Dispose did not return the connection to the pool, it has been difficult to get developers to switch to the using/IDisposable temporary resource pattern with connections.

Wednesday, June 09, 2004 9:30 AM by James Arendt

# ORM 4 .NET Tools comparison

A bit off-topic, but I've found quite a serious lack of reviews for ORM tools for .NET on the web. At the rate they are appearing today, evaluating all of them would be a mission even Tom Cruise would hesitate to take on. Has anyone read a decent review that looks at the pros and cons of the good ORM Tools for .NET?

Friday, June 11, 2004 7:55 AM by Sirius B

# re: Critique of Disappointing Session at TechEd

We've had quite a few discussions about O/R mappers for .NET, some that were "reviews" of certain products, on the ASP.NET forums in the architecture topic. I myself have the decently popular WilsonORMapper (http://www.ORMapper.net) now, so I try not to make too many comments, but I still highly recommend EntityBroker and LLBLGen Pro if you need more advanced features than my simple mapper offers.

Friday, June 11, 2004 9:24 AM by Paul Wilson

# .NET RS232 Serial Port communication with RS232.dll

A lot of people are coming to this site searching for .NET Serial communications on Google. And while Paul Wilson made it known that System.IO.Ports.SerialPort will arrive in .NET Framework 2.0, that fact is not really useful to you if...

Sunday, June 13, 2004 4:13 PM by TrackBack

# re: Moving from Wise to VS.NET Deployment

Anybody figured out how to specify the physical location of your web site when the MSI is installing into IIS?

Monday, June 14, 2004 9:50 AM by Pat B

# re: Interesting SQL Dilemma -- Need Help

Actually, IMHO, it is the SQL standard committee create this whole mass. The purpose of the SQL standardization is originate on the hope that there is a 'standard' way of the "Structure Query Language" which can be used across all kind of the backend.

Granted that using a AutoIncrement number/ timestamp is a bad practice of the "good" database design -- but everyone use it. It bother me that when the SQL committee keep on ignore of the actual usage of the database and add their "value" into the standardization process. When they leave out this section on the standard SQL lanuage --- guess what, all database provider do just their own stuff. All different identity method have on MSSQL, ACCESS, ORACLE, MYSQL, FoxPro, DB2.. all have different meaning and functionality --- the tools writer just get caught in between.

As to why identity column is bad database design -- just don't scale to well, image that for a big database table, your costomer just constantly add 2 records then delete 2 records. (Guss what, the two deleted records identity number can't be reclaimed becuause there is no guarantee if it is used or not when on multiuser secnario.)

The similiar problem go to timestamp, it just doen't scall well. When you have multiple records open on the multiple layer of transaction (if it is supported), does the timestamp should be the time you first create on that connection or when you commit the transition. or there it two transitions affect two different row on the same table which happen to be occur on the same time. Do yo get two record on this table with the exact the same timestamp? How does a database guarantee the time stamp across the time of transition commited? etc...

Yea, it work great for the trivial case when you don't consider Y2K similiar secnarios(as the same assumption was made for Y2K problem-- they assume that all those old programs by the time we hit this problme, they would already been fixed, right? --- Not)

Ming

Tuesday, June 15, 2004 2:25 AM by Ming Chen

# re: Atlanta Geek Dinner - June 16th, 6:00 pm at Houlihan's

So how did the dinner go?

Thursday, June 17, 2004 3:09 PM by Kay Lee (KraGiE)

# re: Atlanta Geek Dinner - June 16th, 6:00 pm at Houlihan's

It was a very enjoyable dinner. I don't know the official count, but it was probably about 20 people. The downside was there were no women. :( It was nice to see some folk again, and it was also nice to meet and chat with some new folks. I won't even attempt to name any names since I'll miss more than I would get right. Of course, I'm a homebody, so I was probably one of the first to leave.

Thursday, June 17, 2004 4:05 PM by Paul Wilson

# re: Atlanta Geek Dinner - June 16th, 6:00 pm at Houlihan's

Haha. Tech based dinners rarely attract the women folk. I'm going to be in the ATL later this year, and if you have another geek dinner around that time, I'll stop by. I ain't a girl, so it's another sausage to the count, but I can drag the girls I know there along.. or at least try.

Thursday, June 17, 2004 5:45 PM by Kay Lee (KraGiE)

# re: Atlanta Geek Dinner - June 16th, 6:00 pm at Houlihan's

Sorry I missed it - I was home with the childrens.

Saturday, June 19, 2004 12:04 AM by Jerry Dennany

# re: Who actually cares about all these GMail posts?

Amen

Monday, June 21, 2004 5:23 PM by M. Keith Warren

# re: Who actually cares about all these GMail posts?

No kidding. Let's get back to things we all (or at least me) really care about.

Monday, June 21, 2004 5:27 PM by Ryan Farley

# re: Who actually cares about all these GMail posts?

They all did the same thing with the Orkrap invitations a while back. Enough already. We get it, you're all sheep. Baaaaaaaaaaaaaaaack to tech talk!

Monday, June 21, 2004 7:01 PM by Scott

# re: Who actually cares about all these GMail posts?

Gmail kicks ass. I can't believe a MS follower would call somebody else a sheep.....

Monday, June 21, 2004 8:09 PM by Chris Stewart

# re: Who actually cares about all these GMail posts?

who's talking about gmail?

Monday, June 21, 2004 8:30 PM by Kay Lee (KraGiE)

# re: Who actually cares about all these GMail posts?

Gmail may indeed "kick ass", but I don't see how more than a couple of posts bragging about how many more free email accounts someone has acquired can really be justified.

And while MS makes my life easier and enables me to make a good living, I'm certainly not a sheepish MS follower! See http://weblogs.asp.net/pwilson/archive/2003/10/29/34597.aspx for one example in these blogs, and see my resume at http://paul.wilsondotnet.com to see my background with Oracle, Sybase, Delphi, etc. So please don't assume that someone making a living with MS tools is simply a sheepish MS follower -- if my next client that paid the bills asked me to work with Linux/Java/MySql/PhP then I wouldn't hesitate even for a moment.

Monday, June 21, 2004 8:53 PM by Paul Wilson

# re: Who actually cares about all these GMail posts?

Monday, June 21, 2004 8:53 PM by TrackBack

# re: Who actually cares about all these GMail posts?

Its classic BlogCycle. Last month it was MVP this, MVP that.

Monday, June 21, 2004 9:56 PM by darrenford

# re: Who actually cares about all these GMail posts?

Well, honestly, I can't even get into my gmail. It's borky and buggy to say the least, and I've submitted well over 10 bugs they have. I think they're kicking me out because I'm actually giving them negative feedback.

Tuesday, June 22, 2004 3:46 PM by Kay Lee (KraGiE)

# O/R Mapper vs. Custom DAL Layer - A Real World App Design Decision

Wednesday, June 23, 2004 9:08 AM by TrackBack

# re: Who actually cares about all these GMail posts?

i do da*mit....

no...not really but someone had to be a contrarian.

Friday, June 25, 2004 2:42 PM by Mathew Nolton

# O/R Mapper vs. Custom DAL Layer - A Real World App Design Decision

Friday, June 25, 2004 8:04 PM by TrackBack

# re: On Vacation for a Week -- Have a Happy 4th

Have fun, and don't forget sunscreen

Monday, June 28, 2004 5:15 PM by Kay Lee (KraGiE)

# re: IIS Applications, Virtual Directories, and ASP.NET

it is good

Thursday, July 01, 2004 9:13 AM by harish

# re: ActiveReports, Crystal, or Other for ASP.NET

I'd vote for Active Reports. I worked with their AR2 and .Net version and both won my heart indeed. The only thing I don't like much is the Excel output.

Friday, July 02, 2004 10:18 AM by Terry

# re: .NET GC Myth #2 -- The GC Frees Memory

This isn't always true. Is it? If I have an application that allocated several medium sized (2KB to 10KB) sized objects for some time causing over 100MB of heap memory to be allocated,' and then released them all and went into a suspended state because there was no more "work to be done, I would expect GC to release most of the managed heap back to the system. I would be interested in knowing what kind of triggers can cause unused memory from managed heap to be returned to the OS.

Friday, July 02, 2004 8:23 PM by Manish

# re: .NET GC Myth #2 -- The GC Frees Memory

While the GC "might" release it back to the OS, it appears that it only does this in certain situations, like a very limited amount of free memory available to the OS, or minimizing an app. There may very well be other triggers, but it appears you can't really expect the GC to just un-reserve its memory for no reason.

Saturday, July 03, 2004 6:43 PM by Paul Wilson

# re: Interesting SQL Dilemma -- Need Help

select max(TestId)+1 into tempTable from TestIds

insert into TestIds (TestId) select expr1000 from tempTable

Monday, July 05, 2004 6:34 PM by Jesper Petersen

# re: Rants against Whidbey and Community Leaders

I am not sure why everyone seems to be oblivious about ORMappers and are only focusing on ObjectSpaces. As a working developer I am grateful for "gurus" like you who have provided code and solutions for such tools for 1.*. It is frustrating to realize 1.* is pretty much forgotten by many of the "gurus" out there. I am always looking for the proper tools to get the job done efficiently and it seems that the current answer is...wait for 2.0.

Wednesday, July 07, 2004 10:35 AM by David

# Lazycoder weblog » Where have all the gurus gone?

Lazycoder weblog &raquo; Where have all the gurus gone?

Wednesday, July 07, 2004 12:12 PM by TrackBack

# re: Rants against Whidbey and Community Leaders

Paul, I'm glad to know I'm not the only one "turned off" by all the 2.0, Whidbey, and Longhorn stuff.

I subscribe to a lot of "guru's" RSS feeds, and I'll tell you that I am tired of reading about all the great new stuff coming. I am an everyday developer of ASP and ASP.NET - I don't have time to play with RC's and Beta's and Tech Previews. Of course I like to stay abreast of future trends, but I need to read about stuff that helps me here and now. I need to know tips and tricks for how to do the things that I want to do now - not 18 months from now when I finally can get my hands on the "new" stuff.

It's gotten to the point that 75% of the blog posts that get pulled into my News Gator are about ASP.NET 2.0 and Whidbey. For about 2 weeks now I've just been deleting them before I even read them.

Wednesday, July 07, 2004 12:25 PM by Digger Dan

# re: Rants against Whidbey and Community Leaders

I agree.

I went through the Beta ASP.Net Forums 2.0 pretty thoroughly (written in 1.1) and you can see most of these "great features" that whidbey will bring implemented and working. I've since adopted most of these features for two key reasons:
[a] hopefully quicker adoption of whidbey in my applications
[b] some of these features are must-haves

A couple examples in addition to the ones already mentioned:

- Provider model (in fairness, there was a article on msdn about how to do this in the 1.x framework)
- Themes
- Strongly-typed and non-embedded resource files (this was a huge "must have" for us, and we definetly weren't waiting around for the fix)
- Death'o codebehind (not as elogant as partial classes, but alteast it gets us in the right mindset)
-strongly typed configuration files.

If any of this sounds interesting, I'd strongly encourage that anyone look at the beta forums.

Karl

Wednesday, July 07, 2004 12:26 PM by Karl

# re: Rants against Whidbey and Community Leaders

Wednesday, July 07, 2004 12:27 PM by Rob Chartier

# re: Rants against Whidbey and Community Leaders

Don't hate the players, hate the game.

I'm out, yo.

Wednesday, July 07, 2004 9:22 PM by Jeff Atwood

# re: Sorting and Paging Recordsets in SQL Server

Has anybody tried this for tables with a few million rows yet? Thanks.

Thursday, July 08, 2004 9:34 AM by senkwe

# re: Sorting and Paging Recordsets in SQL Server

I actually just got done reading http://codeproject.com/aspnet/paginglarge.asp -- and I may switch what I use. I've never heard any complaints, but it does look like there are better solutions.

Thursday, July 08, 2004 9:42 AM by Paul Wilson

# re: Rants against Whidbey and Community Leaders

Naw, I agree with some of the whidbey articles out there. It seems like everyone wants to be important, but I don't see them taking their time in their foundation before putting up the billboards.

Thursday, July 08, 2004 2:14 PM by Kay Lee (KraGiE)

# .NET Memory Managment

Friday, July 09, 2004 11:57 AM by TrackBack

# re: Running .NET WinForm Applications on Citrix

We have a WinForm application running on a Citrix that is having an interesting problem. We are having a problem where the application hangs after a period of time and the application throws a "unhandled exception error". It seems to be coming from the 3rd party Grid that we purchased. Does this sound similar to your memory leak issue?

Friday, July 09, 2004 3:53 PM by Mark Huse

# re: Running .NET WinForm Applications on Citrix

Sounds very similar. However, I don't remember how much this post was updated, but we eventually found our issues to be much bigger (if not entirely) elsewhere. I know these other leaks were noted in my blog, but maybe not in this post. This isn't to say there wasn't a problem in the grid, but the problem only surfaced in reality when there were already other memory pressures in the first place. Once we got those more under control, then we never had another grid problem. We still couldn't put too many people on the same Citrix box, but that was due to the very bad business requirements of giving users ALL the data they wanted.

Friday, July 09, 2004 3:58 PM by Paul Wilson

# Lazycoder weblog » AUIML by IBM Alphaworks

Lazycoder weblog &raquo; AUIML by IBM Alphaworks

Saturday, July 10, 2004 7:01 PM by TrackBack

# re: UI Mappers: An Introduction

I wrote a UI mapper in ASP, which generated XSLT (and applied the transform client-side or server-side) (we used SqlXml), and whilst it worked very well, the hardest thing was form layout. PITA.

Probably easier now that I understand CSS.

I must admit to thinking that ASP.NET kind of makes it unnecessary in a lot of cases. Building a form/grid isn't too tricky now (as it could be with ASP).

Saturday, July 10, 2004 8:06 PM by Johnny Hall

# re: Rants against Whidbey and Community Leaders

Another little "feature" that gurus forget to mention is that Edit & Continue in Whidbey will only work for WinForm apps. So ano E&C in ASP.NET

Saturday, July 10, 2004 9:08 PM by rizzo

# re: UI Mappers: An Introduction

<i> I've got my own in beta now -- what would you like to see in order to make it truly worthwhile?</i>

I'd like to see it work in a production environment. ;)

Saturday, July 10, 2004 9:34 PM by Kevin Tupper

# re: UI Mappers: An Introduction

I'd love to see this.

Saturday, July 10, 2004 9:46 PM by lynn@soundworks.com

# re: UI Mappers: An Introduction

I'd like to see it based around the Observer pattern, personally - I've found that using the MVC pattern with the observer pattern works REALLY well..... tho I guess all of these could be used together..... :)

Saturday, July 10, 2004 10:08 PM by Nic

# re: UI Mappers: An Introduction

I am curious how this will compare to the User Interface Process Application Block (http://www.gotdotnet.com/Community/Workspaces/Workspace.aspx?id=0af2b0ef-b049-401a-a2f2-f55a070c1572) from the Patterns and Practices group. We are currently evaluating some expensive GUI tools for doing this typoe of mapping more easilly (BizTalk, Teamplate, K2 Workflow). If you could list a comparison between the UI Block and your UI Mapper then I might have more suggestions.

Sunday, July 11, 2004 1:18 AM by Cory Isakson

# re: UI Mappers: An Introduction

I think it is great idea. It's another must have part of truly solid framework(like o/r mapper). The big question is does asp.net 2.0 with ObjectDataSource and Grid/Form View with two-way databindings eliminates this need?

Sunday, July 11, 2004 2:25 AM by Anatoly

# re: UI Mappers: An Introduction

Well, I would say that this sounds like a very waterdowned version of XAML. The alternative, what you are trying to achieve is to have two providers for the rendering of the UI file: one for ASP.NET applications and one for Windows Forms.

Sunday, July 11, 2004 8:39 AM by Justin Lovell

# re: UI Mappers: An Introduction

Monday, July 12, 2004 1:50 AM by Anatoly

# re: UI Mappers: An Introduction

there is definately a need for ui mappers. i'm looking for one since late 2002. i then discovered http://www.alphora.com and later then http://www.dotnetbuilders.com . But I think the problem with all these tools is the integration in a existing enviroment/framework. so an o/r mapper with ui mapping in mind would be really great because you'll have a lot of flexibility and RAD...
for me an ui mapper is the missing for real RAD (RRAD ;-))
i was so desparated that i developed one but only for ms access at the moment...

Monday, July 12, 2004 6:33 AM by phil

# re: UI Mappers: An Introduction

UI Mapper: Meta-data driven, enables personalization and localization, avoid boring data-hookup, ultimate reuse
ASP.NET Designer: Total control of layout, but requires lots of boring data-hookup code, and little to no reuse
ASP.NET v2.0: Many enhancements make easier, but not revolutionary changes, so still need code and little reuse
UIP AB: Concerned with navigation, not layout of individual list/edit screens, same for other workflow engines
XAML: XAML is like ASP.NET markup for Windows, and still requires boring data-hookup code, and very little reuse
WebMaestro: Appears to be just another template/skinning system, no list/edit screens, nor any data integration

Monday, July 12, 2004 6:43 AM by Paul Wilson

# New Community Leaders will Emerge

Monday, July 12, 2004 7:31 AM by TrackBack

# UI Mappers: A Common Scenario

Monday, July 12, 2004 7:38 AM by TrackBack

# re: UI Mappers: An Introduction

To Phil:

I got an email from a Phil in Switzerland, but I was not able to reply to the email address -- so maybe you can send me another email address instead.

Thanks, Paul Wilson

Monday, July 12, 2004 8:06 AM by Paul Wilson

# re: UI Mappers: A Common Scenario

Hi Paul,

first of all, I like the idea especially if it will be executed in the same excellent way as your O/R mapper; and I have no doubt that you'll manage to do that. There are a couple of tools out there that produce the full cycle (mapping, interface, business logic), so the idea is not that new. While I dislike code generators for O/R mappers, I would prefer them for a U/I generator. The reason is that I don't want go deep inside the code of the DAL as for me the whole purpose of having such a tool in the first place is that I do not have to do that in the first place. With U/I mappers it is different. I see them more as starting points to get results quickly, but it is quite clear from the very beginning that I will need to do extensive changes. Why? - As with race cars, I will buy the engine (DAL) and build or tweak the chassis ;) - A couple of examples: sometimes I may need to use a certain special UI part such as WebGrid.NET or ComponentArt's treeview. I don't expect a U/I helper tool to know everything about all these tools, so I really need source code here in contrast to the DAL (where is it ok to have 'hooks' just in case you need to do something special). So, the tool should supply simple pages as you suggest, use a master page/template approach, concentrating on CSS, preferably work in conjunction with your O/R mapper and should produce source code, so that I can tweak it if I need to.

Best regards,

Marc

Monday, July 12, 2004 8:40 AM by Marc Hoeppner

# re: UI Mappers: A Common Scenario

I wnat to second marc's opinion.

I would love to see some work done in this area, but I do Nnot think it would be applicable. See, UI is design, and design needs to look good. And is something we will never be able automate. Most generated UI's look like some dumpass without a clue in design worked on it.

Personally I think a limited use set of objects along the line of "make it easier to make standard ui's", together with IDE integrated wizards (coming with Whidbey) are a better approach.

But I would be more than glad to see myself prooven wrong.

Monday, July 12, 2004 9:08 AM by Thomas Tomiczek

# re: UI Mappers: An Introduction

The main thing would be performance I think. I can generate list and edit usercontrols very easily using generation. The benefit with using a template generation (shameless plug of CodeSmith) is that I control the implementation and the style of the code.

I think using a UI Mapper would negatively affect performance, but I am open to the idea I suppose.

Monday, July 12, 2004 11:13 AM by Jeff Gonzalez

# re: UI Mappers: A Common Scenario

I totally agree that a UI code generator may be the way to go for many cases -- I think it depends on how much control you need (code generator) vs. how much flexibility you need (meta-data driven). I also don't think there are many applications where you can get away with ALL of your screens dynamically created off of meta-data, but I do think many (if not most) apps have a lot of boring admin-type screens that could be based on meta-data. I think those are usually easy to create with the typical UI controls, and I do want to have some type of hooks for custom controls also, although you're right it may never be able to incorporate all the advanced features of those, but will those really apply to the simple cases. Anyhow, I think UI code gen is better than manual tinkering in most cases, if you can't go the meta-data approach, so I hear you -- and I heartily recommend CodeSmith for code generation and have no intention of competing with it.

BTW, I doubt I'll ever prove Thomas wrong. :) But I do know that many have communicated with me wanting something along the lines of what I'm describing as a UI Mapper.

Monday, July 12, 2004 11:15 AM by Paul Wilson

# re: UI Mappers: An Introduction

Me and my team researched O/R UI Mappers for one of our projects and we are now testing a solution from Modularis. Do any of you have experience with this product?

Monday, July 12, 2004 11:15 AM by Koka

# re: UI Mappers: An Introduction

Performance -- My initial data suggests that my list is at least no worse than using a datagrid, and probably better actually. Why? The datagrid (and 3rd party ones only get worse) is very very heavy, and creates a heck of a lot of controls. My ASP.NET list is just an html table that is rendered much more efficiently, and my mappings are cached. The edit "control" does perform slightly less, but its a fraction of a second that is insignificant to me, just like any list gain I have is insignificant to me. In other words, there are some tiny performance gains (list) or losses (edit), but they are miniscule when compared with working your database and sending the response to the client, so . . .

Anyhow, I have nothing against code generation, and heartily recommend CodeSmith for it, if you need complete control, as opposed to additional flexibility driven by meta-data.

Modularis -- never heard of it, but looks interesting if you are going down the code generation path -- but make sure you look at what it generates and hopefully you will also be able to modify the templates it uses. DeKlarit is also a very good tool if you want to code gen an entire app, but I would personally use CodeSmith if I wanted to code gen since it gives you complete control -- I have used DeKlarit though as an excellent RAD prototyper.

Monday, July 12, 2004 11:30 AM by Paul Wilson

# re: UI Mappers: An Introduction

I actually wrote something very similar. I had my business classes that implemented a fairly standard intereface. I then added a few attributes that controlled how they were displayed. The attributes could be applied either on the original class or on any class that inherits it. (For my purposes, I usually created a class that inherited my original class, and called it View).

So for example, my code would look like this:
public class Data
{
// fields
}

[Exposed(true)]
[ExpectRole(Members.Editors]
public class DataView
{
[Validators(NotNull)]
[ReadOnly(false)]
public string Field
{
//...
}
}

Anyways, I expanded out the library a bit, and I have used it for several clients.

Monday, July 12, 2004 12:12 PM by Joshua Prismon

# re: UI Mappers: A Common Scenario

Paul,
Have you read Kathleen Dollard book on Code Generation in .NET? It is exactly what she tries to provide with XSLT trasformation. It is a wonderful read:

http://www.amazon.com/exec/obidos/tg/detail/-/1590591372/ref=olp_product_details/102-8629871-1928918?%5Fencoding=UTF8

Maxim
[www.ipattern.com do you?]

Monday, July 12, 2004 12:54 PM by Maxim V. Karpov

# re: Rants against Whidbey and Community Leaders

Paul,
Agree with what you said, but I have to give credit to authors such as dino esposito for the recent of making the same feature enabled in .net 1.x version and demostrating it in v2.0.

By the same token, I would like to say that I am sick and tired of "community leaders" feeding me the fish. I want them to teach me how to fish!

My two cents, Maxim

[www.ipattern.com do you?]

Monday, July 12, 2004 3:53 PM by Maxim V. Karpov

# re: UI Mappers: An Introduction

I've written both an O/R mapper and UI Mapper using CodeSmith templates. We use it at the company for which I work to generate business objects and simple list/edit views on those objects.

The UI Mapper is only a decent headstart though. It's not configurable and only emits text boxes for input fields and no validators. It also only targets web forms. It only takes a few minutes to change certain text boxes to drop down lists if needed, and add validation.

It's definitely something worthwhile creating. An xml-based UI Mapper with all the features that you mentioned would be awsome. I've never looked into a third party option.

Monday, July 12, 2004 4:35 PM by Todd Moon

# re: UI Mappers: A Common Scenario

I've seen good things about Kathleen's book, and I know she's a great speaker personally, but I haven't really followed her code gen stuff. I'm just not a big fan of the XSLT style -- not to say its bad or flawed -- its just not my style so I haven't bothered with it. CodeSmith works great for my code gen needs already, and I don't have many needs with my mappers. :) I do think its great that she and others have really tried to push code gen though, since I do think code gen and/or mappers are preferable in most cases.

Monday, July 12, 2004 5:32 PM by Paul Wilson

# re: UI Mappers: A Common Scenario

XAML, XUL, databinding, etc... are showing a strong shift to more loosely coupled UIs. I agree with you Paul that there is room for another layer of abstraction that compliments this shift quite nicely. Thinking of a layer just a bit higher than html, for example,

<TextBlock>
<Heading/>
<Text/>
<Image>
<Subtitle>
<Image>
<Text/>
</TextBlock>

In this case there is no formatting...just good ole contextual XML. A TextBlock control would dictate fonts, spacing, color, etc... A lot can be done with XSLT, but with a Java/Flash/.Net control you could include some rich behavior as well...such as images fading in, Editable grids, or whatever.

Think of defining your pages in the above markup. You can then spit it out into whatever technology you built a component set for.

The more repetitive and similar your Views are the more beneficial this technique would be to you.
-andy

Monday, July 12, 2004 7:14 PM by Andy Hopkins

# re: UI Mappers: A Common Scenario

I think that like O/R mapper which doesn't create database, UI mapper doesn't need to create UI either. It must <b>MAP</b> between businness entity ant UI, handle security issues like hide buttons, grids, and so on, may be validation.
Still the problem is: how to do it with 3-party controls?

Tuesday, July 13, 2004 2:09 AM by Anatoly

# re: Rants against Whidbey and Community Leaders

Let me start with saying that I don’t disagree with you, but here are some of my opinions. “Community leaders” is an interesting choice for the title. What is a community leader and how have they become community leaders? By community in this sense I am assuming you are talking in a general sense, which means that one is a leader for the entire group (the world). This does not refer to a leader that actually goes out into the community. If these leaders are actually leaders they would be looking forward for us and not telling us to rewrite the code ourselves. Most of us today have been complaining about the fact the large articles don’t talk about how to program for today. I think that is not true. Maybe some of us haven’t been reading Dino Esposito's cutting edge articles that tell you how to do .NET 2.0 work today in .NET 1.1. My feeling is that what you are saying is that the community leaders should get out and understand the community. I agree with you 100%, but my feeling is that you are saying that the community leaders should lead us forward as well as tell us what we missed already. I don’t really think that a leader or guru should tell you how to implement your own SQL cache dependency if you can wait for .NET 2.0.

The last time I saw an MVP (community leader) at a user group it was to sell me training. I am not saying that MVP’s aren’t busy, but let’s not complain that guru’s don’t have time if MVP’s don’t have time to do everything also. Case and point: Where you and I are from, we have community leaders and those leaders usually don’t attend community events. (Please don’t take this as I am attacking anyone I am just stating my feelings)

Tuesday, July 13, 2004 1:18 PM by Brendon Schwartz

# re: Rants against Whidbey and Community Leaders

I totally agree that Dino has been a pleasant exception. And I agree that's sad if the only times you see an MVP is to sell you something. I don't typically attend user groups, but I make it to other events, and I try to do the dinners and things.

Tuesday, July 13, 2004 1:42 PM by Paul Wilson

# re: UI Mappers: A Common Scenario

Paul,

Where was this idea 6 months ago when I started toying with the idea?! I have been working on this concept myself for about 6 months. Now I don’t have the skills that you have and this is why I am not 100% done but I am almost there. I started looking at different O/R mappers about 6 months ago, the main ones I locked at where Olymars and LLBLGen Pro.

Olymars is cool as it also generates lots of controls and GUI objects for you….but I did not want to use stored procedures. Using LLBLGenPro was the best solution for me as it uses dynamic SQL. I am writing reporting apps and did not want to create Procs on my servers.

Anyhow the approach I took is a follows.

1. Create LLBLGen Pro Project . The new version of LLBLGen Pro supports custom properties. I store custom properties in the project file and these are used in step two. Generate code using adapter config this will generate 2 projects.
a. DatabaseGeneric
b. Database Specific
2. I have a template set that runs in codesmith. I create a custom property browser that will open the LLBLGen project file. I run the master template set and the following projects are created.
a. BL – Business Layer Project
b. WebControls – For each entity I create a custom dropdown, datagrid and repeater
c. WebApplcation – Creates web forms and web form lists for each entity

Bert

email if ya want 7fgi-waja@spamex.com

Tuesday, July 13, 2004 3:13 PM by Bert

# re: UI Mappers: A Common Scenario

I think you hit it on the head Anatoly. The mapper vs generator is a key point.

Tuesday, July 13, 2004 11:10 PM by Andy Hopkins

# re: UI Mappers: A Common Scenario

you are on the right track. i did a bit of this with a template{x} product i wrote (http://www.cybral.com/solutions/templatex.htm) and people were always asking for the UI piece...plus it demos much better to senior managers and above. O/R Mappers are typically too abstract for management where a nice wsiwyg does well for the "abstract-challenged" ;)

-Mathew Nolton

Wednesday, July 14, 2004 3:25 PM by Mathew Nolton

# re: Running .NET WinForm Applications on Citrix

Hello Paul,

I work for a firm that is also currently trying to deploy a .net application on Citrix. I was wondering if it would be possible to give even a ballpark of the kind of hardware that you were running citrix/.net app on?

The reason this is of interest is our numbers are not much better than you have described here, getting about 15-20 users per citrix box (.net app + citrix). In our case the average Citrix box has a single 3.0 GHz CPU and 2GB of RAM.

Any feeback would be a huge help! thanks!

Raif


Wednesday, July 14, 2004 9:26 PM by Raif

# re: Running .NET WinForm Applications on Citrix

Our boxes were dual-processor with 4 GB RAM -- I don't know the CPU specs. Keep in mind our biggest problem was the very bad business requirements to allow unlimited number of records in a rich grid control with too many other features to count. I honestly believe a better set of requirements would have yielded more users per box, although I also am not convinced it would ever get the 50+ users that were common with Access and other non-.NET apps!

Wednesday, July 14, 2004 9:54 PM by Paul Wilson

# re: Running .NET WinForm Applications on Citrix

Thanks for the feedback Paul!

We have exactly the same issue here, as our client wants complete sets of data in the grids (no record limits). So we end up in some cases with very large memory requirements to load in all that data, just so they can get the same rich grid controls that you are likely describing.

I am also convinced based on our observations that 50 users would be an amazing feat for a .net application via Citrix. At least an application that loads such large sets of data.

I have a round of more interesting testing to be done on this whole setup in the weeks/months ahead. If I find anything that might be of help, I will let you know!

Thanks Again,

Raif

Thursday, July 15, 2004 11:33 AM by Raif

# re: Visual Studio 2005 Beta 1 -- Missing in Action

I wonder if you should call tech support to help you figure out why the software won't install?

Friday, July 16, 2004 11:09 AM by Darrell

# re: Visual Studio 2005 Beta 1 -- Missing in Action

Ha ha -- that's a great idea.

Friday, July 16, 2004 11:27 AM by Paul Wilson

# re: Visual Studio 2005 Beta 1 -- Missing in Action

^heh flawless.

Friday, July 16, 2004 12:54 PM by Kay Lee (KraGiE)

# Hyperlinks versus postbacks

Friday, July 16, 2004 4:52 PM by TrackBack

# re: More on UIMappers and WilsonORMapper

Agreed, an attribute based UI mapper doesn't make sense and it ties your biz objects too closely to your UI.

I notice that O/R mappers map class members, not necessarily fields. They could be fields or properties.

Saturday, July 17, 2004 4:41 PM by Scott

# re: More on UIMappers and WilsonORMapper

I dont think that using attributes would necessarily be a bad thing, it just depends on how tightly coupled you want to have your UI mapping with the business object, and how much of an abstraction you want to create your mappings. The biggest advantage of attributes is that you wouldn't need another designer to make the implementation.

I have noticed that the new 'DataSources' panel is VS2005 beta seems to do something like this. It allows you to reference a data object and select which type of UI input model you want for the property, which seems like a big time saver. Since I don't have the beta yet I don't know if this works for Web forms yet (hopefully), and how much flexability it has.

One of the things I've been thinking about is Indigo's 'DataContract' model, specifically the 'SharedContract' model, and how it might apply to UI construction. It may be a dead end, but the mental execise might give one an insight.

It's also always a currious question on who should be 'InCharge' when designing UI. By 'InCharge" I mean providing the control between the UI and the Data. Should the work flow process be incharge? Should the data object be in charge? Should the model be a hybrid?

Maybe I should go back and get another look at MS UI Application block. It's at 2.0 - maybe it's a better product.

Sunday, July 18, 2004 9:10 AM by lynn

# re: ActiveReports, Crystal, or Other for ASP.NET

LogiXML .NET and web-based reporting is free now. It is a reporting system (like Crystal) rather than a reporting component (like Active Reports), but cost-wise, it is free for develpment and deployment on sigle-processor servers with a low-cost upgrade to support multi-processor servers.
Find more informtion at http://www.FreeReporting.com.

Tuesday, July 20, 2004 8:26 AM by Arman Eshraghi

# re: UI Mappers: An Introduction

You link to MiniApp. What do you think about it? How does it compare to your solution?

I heard about NakedObjects (http://www.nakedobjects.org/), are the concepts there close to what you want to achieve?

Tuesday, July 20, 2004 9:33 AM by Fabrice

# re: Sorting and Paging Recordsets in SQL Server

I believe I read somewhere the sp_executesql will compile the dynamic query and create an execution plan for it. This may speed this up a bit if the same exact query is executed.

Wednesday, July 21, 2004 7:29 AM by Jonny

# Short MVP Links

Thursday, July 22, 2004 12:58 AM by TrackBack

# Short MVP Links

Thursday, July 22, 2004 1:01 AM by TrackBack

# re: Cool MVP Link -- I'm on Microsoft.com

As Beavis would have said..."You RULE, RULE!"

Thursday, July 22, 2004 2:13 PM by zzzzzzz

# In the real world...

Thursday, July 22, 2004 11:58 PM by TrackBack

# re: Cool MVP Link -- I'm on Microsoft.com

Sweet deal! haha

Friday, July 23, 2004 3:39 PM by KraGiE - Kay Lee

# re: WinForm UserControls in Internet Explorer

How do i set my internet explorer to allow for flash aniamtion playing well?

Sunday, July 25, 2004 5:19 PM by Nijay

# re: WinForm UserControls in Internet Explorer

? Flash ? Never heard of it. :) Seriously though, I don't know anything about Flash.

Sunday, July 25, 2004 7:57 PM by Paul Wilson

# Taking the value of PageCount

Excuse me but i have never used a stored procedure before, and although your code works great (thanks a lot by the way :)) i want to ask how can i get the PageCount value from the second table generated by ur stored procedure? Thank you very much in advance :)

Tuesday, July 27, 2004 1:59 AM by Resa

# re: Sorting and Paging Recordsets in SQL Server

Assuming you're using .NET and a DataReader then the NextResult method is what you want. If you are using a .NET DataSet then you will look at the second table, i.e. .Tables[1].

Tuesday, July 27, 2004 5:59 AM by Paul Wilson

# re: Cool MVP Link -- I'm on Microsoft.com

Wednesday, July 28, 2004 4:29 AM by Mike Schinkel

# re: Sorting and Paging Recordsets in SQL Server

I'm using sql server, and the NextResult method doesn't work, is there another way, i mean using sql server? thanks

Monday, August 02, 2004 2:06 AM by Resa

# re: MasterPages Template Properties in .NET v1.*

Does this work with sub proceedures as well? I am trying to call a sub proceedure located in my template from my implimenting page. Any ideas?

Thursday, August 05, 2004 9:28 AM by Daniel Hirsch

# re: MasterPages Template Properties in .NET v1.*

Where does this code go...on the template page? or on the page using the template? When I add it to the page using the template I get an error saying MyTemplate is not defined...my class is called MyTemplate

For Instance I have this in my template code behind...

Public Class MyTemplate
Inherits System.Web.UI.UserControl

as my class declaration..along with all the other proper stuff in there...

Now when I put the code you gave us above


Private ReadOnly Property Master() As MyTemplate
Get
Return CType(FindControl("mstrPage_Template"), MyTemplate)
End Get
End Property


Into my template code behind...either it doesnt work..or I don't know how to reference it...

When I put it into my page code I get MyTemplate not defined..

When I use it with your code in my template page...then try to call a sub procedure (located in my template code behind) called ButtonLib() it doesn't work..no matter how I preface: MyTemplate.ButtonLib(), Master.ButtonLib() etc...just don't know how to call it.

Thursday, August 05, 2004 10:04 AM by Daniel Hirsch

# re: MasterPages Template Properties in .NET v1.*

You put this code in the page itself, or in a base page if you are using that approach. If MyTemplate is not defined then either its not compiled or you have the namespace/class name incorrect. I notice you are using VB, and that automatically prepends the name of your project to all your namespace/class names, unless you change this setting in the project file. I can't think of anything else.

Thursday, August 05, 2004 9:38 PM by Paul Wilson

# re: UI Mappers: An Introduction

Thanks for making-up the name "UI mappers". I've been writing "UI mappers" for the last 5 years and my best at naming those was "metadata UI frameworks for database applications" which is way too nerdy.

Sunday, August 08, 2004 3:52 AM by Olivier Giulieri

# re: UI Mappers: An Introduction

No problem Olivier. :) It sounds like lots of us have made such solutions over the years, but maybe not generic enough to actually sell and easily reuse until now.

As for MiniApp Fabrice, it appears to get the job done easily, but it mixes maps the UI directly to the DB without an in-between O/R mapper or other plug-in. That's great if you want the utmost simplicity, but its a little too inflexible from an architectural point of view in my opinion. I'm also not sure it has any other hooks for custom actions or controls, although I can't claim to know for sure either. As for NakedObjects, it appears to also be very easy at the expense of flexibility.

I'm still working on the hooks for mine, as I use it myself and get early feedback from some beta testers, but I think it must be flexible to really be useful. I really like creating my entity objects with business logic -- very OO and easy to program against. My approach is allowing that pure OO developer desire, and then providing a dual O/R and UI mapping framework with a great deal of flexibility. Its more work than the simplest solutions, whether they be dynamic as MiniApp and NakedObjects, or code generators like others, but its giving me the additional control that my architecture needs and my users demand.

Sunday, August 08, 2004 11:34 AM by Paul Wilson

# re: Programming by superstition

Tuesday, August 10, 2004 12:56 PM by TrackBack

# J2EE patterns - a nice read too

Monday, August 30, 2004 7:24 AM by TrackBack

# re: WilsonORMapper v3.0: Better Control and Custom Providers

Thanks for adding support to WilsonORMapper for our VistaDB .NET data engine -- thats great stuff Paul!

Anthony Carrabino
www.vistadb.net

Thursday, September 02, 2004 11:20 AM by Anthony Carrabino

# re: Summary of My Last Couple of Months on Big Project

at least the pay is worth...hehehe :)

Thursday, September 02, 2004 10:48 PM by Chris

# re: Summary of My Last Couple of Months on Big Project

And boy, was that ever a project!

It's nice to have a few minutes to surface after being heads-down for so long, though, isn't it?

Thursday, September 02, 2004 11:35 PM by Jerry Dennany

# re: WilsonORMapper v3.0: Better Control and Custom Providers

Maybe this is dumb question, but can I use the WilsonORMapper to perform distributed transactions?

Can I use the objects/object collections in a distributed architecture? Meaning, can I pass objects back from web services or remoting servers to a client application?

Friday, September 03, 2004 11:44 AM by Jorge Matos

# re: WilsonORMapper v3.0: Better Control and Custom Providers

Distributed architecture -- yes, distributed transactions -- no. There are no restrictions to your objects (i.e. no base class), so if your objects can be remoted or serialized then you can do so. There are certainly a few things that you cannot do, but no different than you should expect. The obvious ones are that you can't remote or serialize an ObjectReader or a Transaction object. The more subtle ones are that you cannot use any lazy-loading (no ObjectList or ObjectHolder), so you'll need to setup any relationships with lazyLoad="false" in the mappings. Of course, you should carefully think whether you really need automatic relationships in a distributed system in the first place. So yes, you should be able to use my ORMapper in distributed systems. But there is no support for COM+ distributed transactions -- just normal ADO.NET transactions.

Friday, September 03, 2004 12:30 PM by Paul Wilson

# WilsonORMapper at version 3.0, and what's an OR mapper anyway?

Friday, September 03, 2004 5:30 PM by TrackBack

# WilsonORMapper at version 3.0, and what's an OR mapper anyway?

Friday, September 03, 2004 5:31 PM by TrackBack

# re: My SourceForge Experience

I have to agree. I used to be a CVS then SVN convert. Then I used Sourcegear Vault. I'm a converted man.

Now, if someone wrote something like GDN workspaces, without the VSS-backend, and put SGV in as the version control system, I'd be a SUPER happy camper.

BTW, thanks for releasing WilsonWebForms - I've had a look at it previously (being a fellow MVP :) thanks!), and it looks like it would solve a load of problems I've had in the past. Nice :)

Saturday, September 04, 2004 1:44 AM by Nic Wise

# re: Open-Source WilsonWebForm for Multiple Server Forms

This is a fantastic move Paul, thanks! I've been dying to know how you did this - I guess than now I can find out :-)

Saturday, September 04, 2004 5:52 AM by Scott Galloway

# Paul Wilson's SourceForge Experience

Paul Wilson discusses his thoughts on SourceForge and what it is like for developers to get a project started there. I found his thoughts on this interesting since I have always had a good experience there as the end user....

Saturday, September 04, 2004 7:59 AM by TrackBack

# re: Open-Source WilsonWebForm for Multiple Server Forms

I agree with Scott!

Thanks very much for making it open-source I'm sure many people will appreciate it.

I know I do!

John

Saturday, September 04, 2004 8:14 AM by John Mandia

# re: Open-Source WilsonWebForm for Multiple Server Forms

Can you put a WilsonWebForm inside a normal asp.net form? For instace, if you use a WilsonMasterPage template for all of your pages and an ascx UserControl for your left-column navigation, can you put the WilsonWebForm inside that left column navigation control?

Saturday, September 04, 2004 3:23 PM by Shannon J Hager

# re: Open-Source WilsonWebForm for Multiple Server Forms

The problem with that is html and browsers. In other words, while there's nothing to stop you from putting a WilsonWebForm inside a normal asp.net form from the asp.net view, most browsers don't support a form inside another form -- its html that gets you here.

So I would recommend you redesign you master page so that the entire page is not inside the regular asp.net form. My site has a left column and a preferences area at the top of the rest of the page -- then the rest below that is the main content region which is where my regular asp.net form is at. This way I have a WilsonWebForm on the left side for my search box that posts to a separate search page, and another WilsonWebForm for my preferences area -- while still having my main content area work just like normal.

Saturday, September 04, 2004 4:21 PM by Paul Wilson

# re: Yet Another Post on Dynamic Sql vs. Stored Procs

Good writeup !

and I think that perhaps the *REAL* issue is the bad database design problem!!!

I am working on some stuff right now that I am 99% sure the performance problems come from the first db design having been done by a non-dba who was more used to working in a big firm where the sql was handed to him...

two key tables have no relation and others that are related have none... and so indexes have to be built and extra code to prevent relational errors....

I am trying to fix it but have to step with caustion as 4 programs access the sql db and have some odd code embeded in each app.

one benifit to s-procs at times is this:

if none of the apps had hard-coded sql then fixing the db would be a lot simpler.

O/R maping and code gen are things I want to use more of but this is a system written in part in MS J++ part in Sun Java part in C# and now some is moving into Web Services.... so each change has to be tested for each apps embeded logic... a pain!

Sunday, September 05, 2004 12:20 PM by Denny Figuerres

# re: Yet Another Post on Dynamic Sql vs. Stored Procs

Hi Paul,

I'm one of the developers of DocuLive, an electronic patient
record system used in Norway and in Denmark.

DocuLive's kernel is constituted of close to 120 tables and
600 stored procedures. The originality of our approach is that
the kernel, implemented in T-SQL, *IS* what you could consider as
an O/R mapper. So, if I come to your questions, I could anwser "yes" to almost all of them, excepted "do your stored procs allow you to sell your product with
support for any database?", but that's only because we've
never had the occasion (and were never asked) to migrate it
to another SQL platform.

More information on DocuLive is available here:
http://www.xhovemont.be/PrvImages/DocuLiveECOOP2004.pdf

That's a short DocuLive presentation done at ECOOP 2004.

DocuLive in Norway (in Norwegian):
http://tinyurl.com/6kuqz

Sunday, September 05, 2004 1:26 PM by David Brabant

# re: Yet Another Post on Dynamic Sql vs. Stored Procs

Thanks David. There's no doubt there are ways to use stored procedures in such ways -- but I don't think its typical, nor is it what most of the people debating "dynamic sql" vs. stored procs have in mind. Again, I'm not so much arguing against stored procs as I am for trying to better focus the discussions on the real issues.

Sunday, September 05, 2004 1:31 PM by Paul Wilson

# re: Yet Another Post on Dynamic Sql vs. Stored Procs

To me, a true developer/application architect should have the ability to design a decent database from the ground up. I pride myself in being able to do this, but always make it a point to get the design reviewed by a *qualified* dba (let's face it, some aren't...).

So to Denny's comment, if an application designer is designing a database with no keys and relationships, they probably shouldn't be building software (IMHO) anyway. You MUST be multifaceted to succeed in app dev these days.

Sunday, September 05, 2004 2:50 PM by Jay Nathan

# re: Yet Another Post on Dynamic Sql vs. Stored Procs

Paul,

I won't allow the interaction between my client application and database to be controlled by an O/R mapper. I have never found a piece of code that can look at my database and provide me some type of interface into that database that provides acceptable performance. I know how to setup a database with primary keys, foreign keys, and indexes. My code provides a high performance interface.

Whenever I have seen an O/R mapper, it has always had some serious performance problems compared to what I can manually write. I have found that the client will pay for this type of performance.

As for the argument about dynamic sql vs. sprocs, well i don't see enough programmers that know how to properly call sprocs, so I try and stay out of them because they need code that they can support and understand. They can understand dynamic sql. As for the suppossed security problems, well if you just take the input and try and put that into the database, well yeah, there are problems with that and you can get what you deserve. I have some parsing routines that resolve the sql injection security problems.

For me, a properly designed database combined with proper sql statements provides the best performance and are secure.

Wally

Sunday, September 05, 2004 3:16 PM by Wally

# re: Open-Source WilsonWebForm for Multiple Server Forms

yeah, that was a dumb question, huh? It was Saturday, I forgot to think first. :)
Thanks for the reply.

Sunday, September 05, 2004 6:33 PM by Shannon J Hager

# re: Yet Another Post on Dynamic Sql vs. Stored Procs

That's totally fair Wally -- I like a good O/R mapper, but its definitely not for everyone. I do hope you do some code-gen though, which you can do with CodeSmith using your own templates and style.

That said, while I don't have a problem with anyone doing there own thing (if done well), I do think that good O/R mappers do not suffer significant performance loss -- in some cases they even do better.

Sunday, September 05, 2004 8:27 PM by Paul Wilson

# re: Yet Another Post on Dynamic Sql vs. Stored Procs

BTW, I am not trying to trash the Wilson O/R mapper. :-) I have much more confidence in you than in most developers (read 99.5%) and in your capabilities to create a feature rich app.

I've been dealing with this project that has an O/R mapper and the O/R mapper is driving me crazy. Basically, it is an O/R mapper that they rolled on their own. Yuck. As you can guess, I have a bad taste in my mouth.

I have tried to stay away from the code generators for two reasons.
1. Performance reasons as mentioned above.
2. Problems in making the finetuning type of changes that a code generator does not like me to do.

Wally

Monday, September 06, 2004 9:42 AM by Wally

# Back to Dynamic SQL vs. Stored Procs

I read an interesting post from Paul Wilson regarding the never-ending debate of whether to use stored procs or dynamic SQL for your data layer. As I mentioned before, I've always been a stored proc kind of guy. Why? Really just because I love them. I love to get a change of scenery everynow and then and work with some T-SQL. But after reading Paul's post I got thinking. I've never really even given the dynamic SQL route a try. We'll I've tried it, I love the idea of O/R mappers, but really just as that...a try - knowing the whole time I was just seeing what it was about then going back to my typical stored proc route.

Monday, September 06, 2004 2:00 PM by TrackBack

# Back to Dynamic SQL vs. Stored Procs

I read an interesting post from Paul Wilson regarding the never-ending debate of whether to use stored procs or dynamic SQL for your data layer. As I mentioned before, I've always been a stored proc kind of guy. Why? Really just because I love them. I love to get a change of scenery everynow and then and work with some T-SQL. But after reading Paul's post I got thinking. I've never really even given the dynamic SQL route a try. We'll I've tried it, I love the idea of O/R mappers, but really just

Monday, September 06, 2004 2:01 PM by TrackBack

# re: Yet Another Post on Dynamic Sql vs. Stored Procs

Nice post and a good discussion/description of true dynamic sql. Thanks.

Monday, September 06, 2004 2:12 PM by Bil Simser

# re: Yet Another Post on Dynamic Sql vs. Stored Procs

I also won't argue either way yet (my jury is still out), But don't dismiss that "move the burden" argument as absurd - moving burdens from one group / person to another is critical to team software development.

The fact that the responsibility stays in house but moves to a different group can be an asset, not a detriment (or absurdity).

Monday, September 06, 2004 6:10 PM by Philip Rieck

# re: Yet Another Post on Dynamic Sql vs. Stored Procs

Great post. It really got me thinking. I've always been an sp-guy but maybe it's time to at least try another approach.
Starting a new version of my framework soon and I'll implement ORMapper into it.
BTW, I'm using CodeSmith for code and SPs, so that's never been a real problem. ;)

Tuesday, September 07, 2004 3:28 AM by Patrik Dahlén

# Paul Wilson and OSS

Tuesday, September 07, 2004 7:26 PM by TrackBack

# re: Yet Another Post on Dynamic Sql vs. Stored Procs

A good friend of mine had a hard time understanding the concept of dynamic sql in O/R mapping. It took me the whole evening explaining and finally convinced him to read some articles regarding this. :-)

This is a great post Paul. I think this will clarify some issues regarding "dynamic sql" which some people thinks its hard coded somewhere in the app.

Wednesday, September 08, 2004 12:39 AM by Chris Ongsuco

# re: Open-Source WilsonWebForm for Multiple Server Forms

Been very curious for a long time on how you did this. Thanks for sharing the code!

Wednesday, September 08, 2004 12:42 AM by Chris Ongsuco

# re: Yet Another Post on Dynamic Sql vs. Stored Procs

Wally,

I ask you to check out code gen again. You don't have to be stuck with your issues #1 and #2 with code gen. You can always modify what you generate afterwards if you need fine tuning. And especially with something like CodeSmith, the performance of the code-gen'ed code is only as bad as the template you write.

Certainly it'd be nice if you can code-gen everything in the build process with no touch-ups but chances are you have to, even if you do something like create a derived class to "fine-tune".

Just my 2 cents

Wednesday, September 08, 2004 2:26 PM by Jiho Han

# re: Yet Another Post on Dynamic Sql vs. Stored Procs

In my apps I never user stored procs. I even avoid using views. For these reasons:
Stored proce make me dependent on the type of database (Oracle, MySQL, SQL Server)
Part of the source code is stored in stored procs and another part in C# or VB. How do you make agreements across a development team which code to put where?
Stored proces can only be organized on their filename. How do you control a few hundred store procedures? How does every developer know what each procedure does?


Friday, September 10, 2004 2:00 PM by Joris

# re: Summary of My Last Couple of Months on Big Project

Thanks for another very interesting real world project description, Paul. Congrats on your successes!

Sunday, September 12, 2004 12:12 AM by Dave Burke

# re: Assorted Thoughts on Whidbey, Yukon, Longhorn, and Mono

Paul,

I am impressed that your code works in Mono. Congrats!

Wally

Sunday, September 12, 2004 8:08 PM by Wallym

# re: Assorted Thoughts on Whidbey, Yukon, Longhorn, and Mono

I agree on the "Code" folder in Whidbey. I also was very adamant about it being configurable, to no avail. I'm just not going to use those features.

Monday, September 13, 2004 2:41 AM by Robert McLaws

# re: Assorted Thoughts on Whidbey, Yukon, Longhorn, and Mono

I'm not suprised that WinFS was delayed. Of all the technologies at the PDC, WinFS was obviously the one that was still in the very early stages. Performance was also a huge issue, with WinFS rendering the PDC build of longhorn barely useable.

Personally, I'm looking forward to Indigo. I've been playing with WSE 2.0 and the WS-* stuff, and I am a bit concerned about forward compatibility.

Monday, September 13, 2004 10:33 AM by Jerry Dennany

# re: Yet Another Post on Dynamic Sql vs. Stored Procs

Hi!

The I am currently using Oracle 9i, and I just switched from SQL Server... just two weeks ago.

now the problem is in Oracle 9i or I duno if it is true for any Oracle World, that Stored Proc are pain in the @$$ they are totally disgusting way of getting value via Stored Proc. Like you have to write the Cursor for every return parameter? you can't get "single value" return via Stored Proc, it is allowed only via Function.

I was very keen at first that it can be the same thingy, as I am from SQL Server, but this hit me too hard! Oracle Stored Proc are not so "developer friendly"

Anything anyone can say about it?

The alternate approach? I am using "Views" and then shorten my big giants SQL and then gettin the data via Views and then applying some logic in my .NET Code (in my Business Layer).

Any very nice alternative of Oracle Stored Proc?

Take Care,

Mudassir

Monday, September 13, 2004 2:09 PM by Mohammed Mudassir

# re: Yet Another Post on Dynamic Sql vs. Stored Procs

Yes, Oracle stored procs are "harder" no doubt. :) They're aren't any tricks that I know of to make it "easier".

Monday, September 13, 2004 3:57 PM by Paul Wilson

# re: Assorted Thoughts on Whidbey, Yukon, Longhorn, and Mono

Paul,

you probably saw this post on Forums about asking feedback for those code folder names...

http://www.asp.net/Forums/ShowPost.aspx?tabindex=1&PostID=691250

Tuesday, September 14, 2004 4:14 AM by Teemu

# re: Yet Another Post on Dynamic Sql vs. Stored Procs

my feelings exactly ...

for many members of the camp ... "Copy and paste is NOT code reuse"

Tuesday, September 14, 2004 1:46 PM by Greg Young

# re: Service Pack 1 for .NET v1.1 Broke My ASP.NET App

Paul,

The file that caused the problem was WebUIValidation.js. I had the same issue. We updated 4 servers running Win2k3 and everything worked fine on 3 of them. Unfortuneatly, the one that failed was the live web server.

In our case, using the new files worked, once they were copied to the correct location.

Thursday, September 16, 2004 4:23 PM by David Crowell

# re: Service Pack 1 for .NET v1.1 Broke My ASP.NET App

Yup - it's a silly bug with framework 1.1 SP1. The WebUIValidation.js files are mixed up. I think you can just use iisreg to fix it..

Thursday, September 16, 2004 5:46 PM by Snorrk

# re: Service Pack 1 for .NET v1.1 Broke My ASP.NET App

we had the same problem. to make matters worse, our 2003 servers have the permissions locked down such that we can't run the iisreg utils to update the client scripts. I am a domain admin too - figure that one out.

so we had to do it by hand...well...write an batch file to copy the folder out to our 60 client sites. we can't figure out why the aspnet_regiis.exe -c option needs special permissions to run, but we don't have time to figure it out.

Thursday, September 16, 2004 5:57 PM by buk

# re: Yet Another Post on Dynamic Sql vs. Stored Procs

Paul, one of the problems with the "dynamic sql" debates might be it is always discussed in abstract, at least everything I've read. Maybe it would help if you (and/or Frans) could blog a series of posts that give concrete examples showing a stored proc and how dynamic sql would replace it including the dynamic sql that would be generated and the .NET code that would be used to call it. I'm suggesting a series of blog posts showing many different scenarios. Maybe that would help people better understand the benefits of using dynamic sql? (or give them more ammo to attack the downsides? :)

Friday, September 17, 2004 2:29 AM by Mike Schinkel

# re: Service Pack 1 for .NET v1.1 Broke My ASP.NET App

Paul,

I too had my share of SP1 problems yesterday. After installing it on my development machine I kept getting and error say ing 1o_v3quy.dll could not be found.

After re-booting and re-installing I still had the same problem. Eventually I decided to re-run aspnet_regiis.exe to re-register .net with IIS. Everything back to normal.

Now of course I needed to run it on server too :(.... This on worked first time without any problems ..?

I hope microsoft are not going back to old way of doing services packs. Service Pack 6 on NT 4 ring any bells :).

Regards

Jonathan

Friday, September 17, 2004 4:43 AM by Jonathan Adams

# re: Yet Another Post on Dynamic Sql vs. Stored Procs

Mike,

From what I understood, the concept of OR mapping is not to ACTUALLY replace stored procedures. It simply tells the developers out there that "hey, you can also use DYNAMIC SQL when developing your CRUD and its also fast, easy to maintain, etc!" They explained the benefits when using it and of course there also trade-offs. But some people tend to misunderstand the concept of "dynamic sql" because they think creating these queries is by string concatenation. And this post, I believe, is to clarify the misunderstood concept.

Now the question of dynamic sql as replacement for stored proc? For me its not. We build app depending on the needs of our clients and their "situations". So its always a matter of choice.

Friday, September 17, 2004 6:08 AM by Chris Ongsuco

# Service Pack 1 for .NET v1.1 broke by ASP.NET apps, too!

Friday, September 17, 2004 8:37 AM by TrackBack

# Service Pack 1 for .NET v1.1 broke by ASP.NET apps, too!

Friday, September 17, 2004 8:37 AM by TrackBack

# re: Service Pack 1 for .NET v1.1 Broke My ASP.NET App

Your blog was featured on TheServerSide.NET. If you have any more information, we'd appreciate any comments you care to post.

Paul Ballard, Editor
TheServerSide.NET

Friday, September 17, 2004 6:41 PM by Paul Ballard

# re: Yet Another Post on Dynamic Sql vs. Stored Procs

The concept of dynamic SQL existed way before the O/R mappers became popular. That's why most people relate to dynamic SQL as being queries created by string concatenation and hard coded in the application. And from that perspective it's quite understandable that people don't like dynamic SQL.

Just because O/R mappers can do dynamic SQL (and in a very controlled way) doesn't mean that people will start think about dynamic SQL as SQL generated by O/R mappers.

So you have:
- Original dynamic SQL (that most people relate too)
- Original stored procedures
- Dynamic SQL generated by O/R mappers

And depending where you are coming from you will relate to dynamic SQL differently and that's why the discussion of dynamic SQL vs stored procedures never ends since people are not discussing the same thing. The discussions are even more common now when O/R mappers are out there using "the dangerous" dynamic SQL.

When it comes to dynamic SQL generated by O/R mappers it's quite different than the hard coding approach since the O/R mapper generates the dynamic SQL in a controlled manner. Based on certain rules it will generate the code in a certain way.

So even if the end result is dynamic SQL I wouldn't say it's dynamic SQL as most people think of dynamic SQL. It's dynamic SQL generated by an O/R mapper. So you should call it something else than dynamic SQL when entering the classic stored procedure discussion. Call it O/R mapper generated SQL.

Saturday, September 18, 2004 7:42 AM by Magnus

# Open-Source ADO.NET XML Provider -- WilsonXmlDbClient v1.0

Saturday, September 18, 2004 11:43 AM by TrackBack

# Examples of O/R Mapping vs Stored Procedures

Saturday, September 18, 2004 12:08 PM by TrackBack

# re: Open-Source ADO.NET XML Provider -- WilsonXmlDbClient v1.0

Paul, you rock. I bow down to you.

Saturday, September 18, 2004 3:38 PM by css

# re: Open-Source ADO.NET XML Provider -- WilsonXmlDbClient v1.0

Nice idea!

Saturday, September 18, 2004 6:22 PM by Sonu Kapoor

# re: GotDotNet, SourceForge, and Other Ramblings

I've used GotDotNet for open-source development, and I have to say that the performance and lack of "doh!" features are embarrassment to the ASP.NET community. SourceGear is a much better option for SCC (and they do offer hosting for some OSS projects), but it's a rich app, not a "online community."

Saturday, September 18, 2004 7:02 PM by Richard Tallent

# re: Examples of O/R Mapping vs Stored Procedures

Great going Paul (Boy, you know how to sell!)

;)
Srdjan - Can I have 5 of these please? NOW?

Saturday, September 18, 2004 7:09 PM by Srdjan

# re: GotDotNet, SourceForge, and Other Ramblings

someone at Microsoft needs to light a fire under the folks ruining GotDotNet WOrkspaces and ither fix it or close it and start over.

every developer In have heard from has the same problems and it's been that way for ever.

time to fold and admit they missed the target by a mile.

Saturday, September 18, 2004 7:21 PM by denny

# re: Open-Source ADO.NET XML Provider -- WilsonXmlDbClient v1.0

I'm not worthy.

Wally

Saturday, September 18, 2004 8:06 PM by Wallym

# re: GotDotNet, SourceForge, and Other Ramblings

Paul,

They rejected my first submission too. All I had to do was submit a support request and they told me exactly what they wanted. I got my project approved and set up within a couple of hours.

http://sourceforge.net/projects/netdoa/

Saturday, September 18, 2004 8:37 PM by Scott

# O/R Mapping 101 By Paul Wilson

O/R Mapping 101 By Paul Wilson

Saturday, September 18, 2004 10:28 PM by TrackBack

# re: Examples of O/R Mapping vs Stored Procedures

I agree on the benefits you describe for O/R mappers. Yes, I totally recognise all the work needed to write it the traditional way using MSDAAB and stored procedures. We're doing this all the time ...

If I understand correctly your Wilson ORMapper only works with ADO.NET 2.0 which is not released yet. Is there a good alternative for using an ORMapper with the current 1.1 version of the .NET framework?

Sunday, September 19, 2004 3:22 AM by Jochen Neyens

# re: News about IIS 7 -- IIS done Modular

Still playing catch up with software that has done it for years.

Sunday, September 19, 2004 3:40 AM by Andrew

# re: Examples of O/R Mapping vs Stored Procedures

Paul,

Very nicely done. The point I would like to bring out most of all is that some of us are small, product-based, companies and our products need to work against multiple database engines out-of-the-box. Installing and maintaining stored procedures for each of the databases at each of our customers is not feasible. This is another reason I believe in O/R Mappers. Thanks again Paul!

Sunday, September 19, 2004 3:53 AM by JW

# re: What Makes an Effective Software Manager?

Stephanie is definitely a superstar! Next time you talk to her, tell her Michael Sanford says Hello!

Stephanie worked with me several years back when I was trying to make a go of a small consulting business. We spent a lot of days and nights doing marathon development sessions for a really bad client called Newton Park (out of business now). I think she probably learned a lot from watching my mistakes! :)

Maybe we should all get together sometime and reminice...

Sunday, September 19, 2004 4:29 AM by Michael Sanford

# re: What Makes an Effective Software Manager?

I don't get how putting you in to fix bugs is exceptional. What am I missing?

Sunday, September 19, 2004 7:23 AM by Roy Osherove

# re: What Makes an Effective Software Manager?

Hey Roy:

It probably shouldn't be exceptional, but I had personally never seen it, nor have my other senior developer friends experienced it.

Thanks, Paul

Sunday, September 19, 2004 9:09 AM by Paul Wilson

# re: Examples of O/R Mapping vs Stored Procedures

Hey Jochen:

The WilsonORMapper works with .NET v1.1! Its not hard to get to work with v1.0 either, but there's a few small mods required (references to Oracle). As far as I know every other O/R mapper out right now is also targeted to v1.*, and not v2.0. That's not to say our mappers won't work with v2.0, but they are available today for v1.*.

Thanks, Paul

Sunday, September 19, 2004 9:13 AM by Paul Wilson

# re: Examples of O/R Mapping vs Stored Procedures

Well said!

I agree wholesale with your post.

/Mats

Sunday, September 19, 2004 9:46 AM by Mats Helander

# re: What Makes an Effective Software Manager?

If you go into a new project and start writing new code, the natural thing to do is write code your way. If you start by fixing bugs, you will naturaly look at diverse parts of the project and interact with the rest of the team to understand the bug.
By the time you start to add new code, you should have a decent "feel" for the project.

It is amazing how many people don't realize the importance of making the call. I have a MS Commerce Server project online and it has issues with anonymous users, it generates hundreds of thousands a month.
I had spelled out the options so many times, but no-one was willing to make the call. Eventualy I said "someone must decide, because I can delete them every day and it won't change my life".

I have a "PM" at the moment who said at the begiining that he is democratic. And it seems that he rarely makes the call on things. He's called me a few times to ask me things that I thought I was just waiting for him to make the call on.

I once had a PM who would come almost every day and tell me where I was at. I don't know how he could tell, he wasn't asking millions of questions, but he was right.
He had/has a talent.

Sunday, September 19, 2004 10:00 AM by AndrewSeven

# re: GotDotNet, SourceForge, and Other Ramblings

Sunday, September 19, 2004 10:26 AM by Joe Black

# re: Examples of O/R Mapping vs Stored Procedures

I can't agree more. The Dynamic SQL capabilities of O/R Mappers are a dream come true. O/R Mappers allow me to focus more on the business entities and rules as oppose to the plethora of ways my business framework may want to access and massage the data in the database. Not having stored procedures is just one less place where errors and problems can appear in one's applications.

Whether an O/R Mapper or code generation solution would require a re-compile or not when introducing a change in entity relations or entity members, I would have a difficult time not re-compiling and testing the application (or at least some piece of it) anyway just to make sure the application does not break or act in an unexpected manner. This is good practice and therefore is a moot point in terms of maintenance for any solution. However, the less work I have to perform to introduce the entity or relationship change the better!

CodeSmith is an awesome tool and one I use regularly for all kinds of template-based code/data generation. I realize some people enjoy CodeSmith for creating a DAL as they want the ultimate in control, but given the maturity of a lot of the .NET O/R Mappers now, I think many of the reasons for their use of CodeSmith as opposed to O/R Mappers may be outdated and invalid. Certainly nobody wants to walk away from an investment in CodeSmith, their templates, and the time and effort spent on learning the CodeSmith syntax, but one needs to constantly scan the market and stay up-to-date on the evolution of tools and solutions. I often talk to people who keep basing their decisions or arguing their point about something based on their experience with really early versions of software that have matured by leaps and bounds since they last used it. If this is the case, I recommend looking at some O/R Mappers again as well as any other tools you may have dismissed in the past.

Good post, Paul.

Sunday, September 19, 2004 1:28 PM by David Hayden

# re: Examples of O/R Mapping vs Stored Procedures

Good article! :)

Now for the 100,000$ question: when are O/R mappers not very efficient?

time starts... now!
*tick*
*tick*
*tick*
...

Sunday, September 19, 2004 2:50 PM by Frans Bouma

# re: Examples of O/R Mapping vs Stored Procedures

Time's up!

Some O/R mappers solely work with objects, and do not have database-directly logic. So when you want to delete a 1000 entities, or you want to update a 1000 entities (all employees' salary +10%!) you have to fetch them first, then perform the action. This can be inefficient.

I throw this example in, to show that O/R mapping is PART of the solution for the problem what's called 'Data Access'. O/R mapping is not THE solution entirely, it requires extra functionality to make it THE solution, and I think in future versions other O/R mappers than mine will have features like this. :)

It's complex, solving the Data Access problem... and people get confused very quickly when terms like 'O/R mapping' are entering the discussion... sadly enough..

Sunday, September 19, 2004 2:58 PM by Frans Bouma

# re: Examples of O/R Mapping vs Stored Procedures

By the way, the WilsonORMapper has long had DAL-friendly methods for situations like this, and more besides. It also gives you an interface for "events" that you can "hook" that occur at retrieval and before/after each persistence.

Now, one place where objects are not the answer is when you need to retrieve a huge number of records. O/R mappers can actually be faster for smaller numbers of records than the bloated dataset, but the reverse is true for larger number of records due to the large number of object instantiations. But the WilsonORMapper can handle this situation too, returning raw datasets, even typed ones, which can be necessary for reporting situations.

Sunday, September 19, 2004 4:12 PM by Paul Wilson

# re: Open-Source ADO.NET XML Provider -- WilsonXmlDbClient v1.0

Paul.. I want to give you a big kiss here and now!

Sunday, September 19, 2004 4:24 PM by Mikael Söderström

# re: Open-Source ADO.NET XML Provider -- WilsonXmlDbClient v1.0

Hmmm, I think I'd prefer something else. :)

Sunday, September 19, 2004 5:06 PM by Paul Wilson

# re: Examples of O/R Mapping vs Stored Procedures

Great explaination! 100% agree with you.

Sunday, September 19, 2004 9:31 PM by Chris Ongsuco

# re: Open-Source ADO.NET XML Provider -- WilsonXmlDbClient v1.0

Paul... Have you thought about incorporating this into the Data Access Block? The 3.* version on GotDotNet has a provider model which backends to Access, Sql Server, Oracle and more.. This would be a sweet addition to it..

Sunday, September 19, 2004 10:50 PM by Anil John

# re: Yet Another Post on Dynamic Sql vs. Stored Procs

Magnus,

What is so "DANGEROUS" about generating SQL at runtime? Care to explain why?

Sunday, September 19, 2004 11:48 PM by Chris Ongsuco

# re: Service Pack 1 for .NET v1.1 Broke My ASP.NET App

The C# compiler in SP1 strengthened its ability to detect the use of unassigned variables. Our app generates C# code from resources that the compiler now rejects -- even though we never ran into compiler or runtime errors before. We'll fix our code generator and send out patches.

I tried to argue on channel9.msdn.com that this ought to be considered a breaking change since our application used to work, but I didn't really get any agreement.

Monday, September 20, 2004 3:30 AM by Erik Johnson

# re: GotDotNet, SourceForge, and Other Ramblings

maybe someone could start a project in ASP.NET about it ?
rewritting GotDotNet is a nice idea ;-)

Monday, September 20, 2004 4:25 AM by Stic

# re: Yet Another Post on Dynamic Sql vs. Stored Procs

Chris Ongsuco: Once again, you did the same thing (discussed in abstract!) I'm thinking we need SOURCE CODE EXAMPLES!! :)

Monday, September 20, 2004 4:35 AM by Mike Schinkel

# re: What Makes an Effective Software Manager?

Paul/Andrew: I'm not following this "make the call" concept. Well, I do in concept, but I need tangible examples, please? For example, what "call" should/could have been made regarding the anon users issue? (Sorry for being dense)

Monday, September 20, 2004 4:52 AM by Mike Schinkel

# re: Open-Source ADO.NET XML Provider -- WilsonXmlDbClient v1.0

Hi Anil:

I have no problem if someone else wants to add it to the MS DAAB, but I don't personally like the MS DAAB (too complicated) and I already have my own cross-database DAL that it works with as is (my WilsonORMapper). :)

Thanks, Paul

Monday, September 20, 2004 5:30 AM by Paul Wilson

# re: Service Pack 1 for .NET v1.1 Broke My ASP.NET App

I had this problem too. Once I copied the Post-SP 1.1 WebUIValidation.js file from \Microsoft.NET\Framework\v1.1.4322\ASP.NETClientFiles on the web server to the aspnet_client in my web app directory everything was ok again.

I tried the aspnet_regiis.exe -i solution, which didn't work, I think that maybe this is because my app is in a virtual directory. Manually copying the file sorted it out though.

Thanks for posting this solution btw, I would have been tearing my hair out for days trying to figure this one out....

Monday, September 20, 2004 8:09 AM by Nick Nugent

# re: Open-Source ADO.NET XML Provider -- WilsonXmlDbClient v1.0

Paul,
I looked over the code and it is fantastic. I am a big fan of using XML behind the the classes and hate to use XPath and XSLT. Sometimes it is better solution though.

Great job! By the way, I think Anil is talking about open-source data access layer project:
http://www.gotdotnet.com/workspaces/workspace.aspx?id=c20d12b0-af52-402b-9b7c-aaeb21d1f431

Check it out, it is very cool and will be easy to migrate to v2.

Maxim
[www.ipattern.com do you?]

Monday, September 20, 2004 11:24 AM by Maxim V. Karpov

# re: Open-Source ADO.NET XML Provider -- WilsonXmlDbClient v1.0

Great stuff!

Monday, September 20, 2004 12:10 PM by Darrell

# re: Open-Source ADO.NET XML Provider -- WilsonXmlDbClient v1.0

So cool!

Monday, September 20, 2004 12:33 PM by Mike

# RE: What Makes an Effective Software Manager?

I like the fixing bug scenario. What better way to learn than the system? That would be my recommendation for joining an open source project for example. Fix bugs for a while. Get noticed. Then add the big feature.

Monday, September 20, 2004 1:43 PM by nospamplease75@yahoo.com (Haacked)

# re: What Makes an Effective Software Manager?

Anything by Drucker is usually worth reading.

Monday, September 20, 2004 3:25 PM by Darrell

# Open-Source ADO.NET XML Provider -- WilsonXmlDbClient v1.0

Monday, September 20, 2004 6:57 PM by TrackBack

# Microsoft .NET 1.1 SP1, .NET 1.0 SP3, XP SP2 and potential problems.

Tuesday, September 21, 2004 11:31 AM by TrackBack

# re: Examples of O/R Mapping vs Stored Procedures

How do you handle sql injection in your dynamic sql? I know parameterized queries don't allow it, but what about dynamic Order By (which cannot be parameterized i believe)

Tuesday, September 21, 2004 12:29 PM by Jeff Gonzalez

# re: Examples of O/R Mapping vs Stored Procedures

First, all of my mapper's persistence is parameterized. Next, there are several ways that you can retrieve data -- and the option you choose can certainly impact whether there is any/much potential for sql injection.

(1) The simplest method is to just create all your own where-clauses -- I try NOT to do this in any of my examples since it obviously leaves the developer entirely responsible for "cleaning" all entered data.

(2) The next method, which is what I almost always use, is to build your where-clauses with my QueryHelper methods. This makes it easy to build "clean" equality expressions, as well as allowing you to not have to know the table and field names, or your databases delimiters. There is also a very good OPath syntax parser that can help you build other "clean" expressions in most cases. I find using the QueryHelper prevents nearly all sql injection, if not all, but I can't of course make any such 100% guarantee either, especially when multiple types of databases are involved.

(3) The final technique is to build the entire sql select statement with paramaters, and then use the overrides with the SelectProcedure class instead. This allows you to do all retrieval with parameterized sql, but it does require more work, so I don't typically do this since I believe the other solution good enough. Note that you can still even in this case use the QueryHelper to get your table and field names, although the rest would be up to the developer.

As for "Order By", the QueryHelper can again be used to validate field names, but certainly there is room for developers to not "clean" sort parameters entered by users.

In the end, I think my mapper has all the capabilities of being safe against sql injection, but there are certainly also capabilities for developers to do things poorly. So developers should still make sure that anything entered by the user (including querystrings) is properly "cleaned", and its also true that your databases should still be properly secured. Yes, its true that you need to allow read and write roles in your database for your application, but you can (1) not use sa or give ddl permissions and (2) secure your application correctly from unauthorized attacks. An ORMapper is a very good tool, but that's all it is -- one tool of hopefully many others in your toolbelt -- it should not be an excuse to be ignorant and/or lazy.

Tuesday, September 21, 2004 4:59 PM by Paul Wilson

# re: More Problems with GotDotNet Workspaces

Yes, I too have seen code disappear from my machine after a check-in and wasn't able to get it back until I went to the website. their stuff seems atrociously unstable and I refuse to use it.

Tuesday, September 21, 2004 5:25 PM by Craig

# re: Examples of O/R Mapping vs Stored Procedures

Thanks for the information, we are using method #2 ourselves, but relying on cleaning data always makes me feel...dirty.

I guess you can probably account for 99.999% of attacks that way and that small 0.001% chance isn't enough benefit for the cost it takes to secure it.

Security and Flexibility always seem to be in direct contradiction of each other.

Thanks for the information

Tuesday, September 21, 2004 6:15 PM by Jeff Gonzalez

# re: More Problems with GotDotNet Workspaces

I don't know why anyone bothers with GotDotNet, the UI (for normal users) is so so so bad. Hard to find stuff, then when you find it it is non-obvious how to actually download the right version. Sounds like the admin interface sucks too.

Tuesday, September 21, 2004 10:38 PM by Steve Campbell

# re: More Problems with SP1 for .NET v1.1

Tell me, do you also have XP Service Pack 2 installed?

Wednesday, September 22, 2004 2:42 PM by Cale Corbett

# re: More Problems with SP1 for .NET v1.1

Yes, but that by itself didn't break anything that I noticed.

Wednesday, September 22, 2004 2:45 PM by Paul Wilson

# re: More Problems with SP1 for .NET v1.1

Hi, Paul: At work, I'm running WinXP (no SP2) and .NET 1.1 (no SP1), and I must enable Integrated Windows authentication in order to debug. So I don't think it's an FX SP1 issue. In fact, this page from last March says that IWA is required for ASP.NET debugging: http://blogs.msdn.com/mkpark/articles/86872.aspx

Thursday, September 23, 2004 2:42 AM by Phil Weber

# re: Service Pack 1 for .NET v1.1 Broke My ASP.NET App

Of course, .NET was supposed to put an end to "DLL Hell", so I guess we need a new name for this sort of problem.
How about ".NET Nightmare"?

Thursday, September 23, 2004 11:07 AM by Mike Dillamore

# re: Open-Source ADO.NET XML Provider -- WilsonXmlDbClient v1.0

We need to cover this on TopXML for sure! http://www.topxml.com

Let's talk! :)

Cheers,
Mark.

(PS - Great surname!)

Thursday, September 23, 2004 7:17 PM by Mark Wilson

# re: GotDotNet, SourceForge, and Other Ramblings

excellent idea actually - shouldn't be *that* complex.

Friday, September 24, 2004 4:57 AM by kenny

# S dot One heeft het over .NET » Dynamische SQL versus Stored procedures

S dot One heeft het over .NET &raquo; Dynamische SQL versus Stored procedures

Wednesday, September 29, 2004 4:45 AM by TrackBack

# re: O/R Mapping or Code Generation

Nah... :)

Wednesday, September 29, 2004 4:16 PM by Darrell

# re: More Problems with GotDotNet Workspaces

I was having trouble just looking at your workspace today. When there are not as many people on the server I will try to look at it again. Good luck with the workspace.

Thursday, September 30, 2004 11:01 AM by Brendon Schwartz

# re: House Sold Officially -- New House Almost Done

Paul,

Who took care of your closing? I'm looking to sell my home next year, and I am wondering about all the formalities of closing. Did you still have to pay the Buying Broker 3%?

Kevin

Thursday, September 30, 2004 10:45 PM by kevin

# re: House Sold Officially -- New House Almost Done

The buyer did have an agent -- and we did agree to that 3%, but that still saved us from having to pay 7% if we also had an agent (and 5% if we had an agent and the buyer did not). The buyer's agent had a closing lawyer which was fine with us, but I had called around and knew I could easily get one if a buyer came that did not have an agent to do such work. The closing lawyer mostly represents the lender anyhow, so I don't see it as an issue.

Thursday, September 30, 2004 10:56 PM by Paul Wilson

# re: Service Pack 1 for .NET v1.1 Broke My ASP.NET App

I installed SP for 1.1 .NET on two my home machines and everything works fine on one machine, another one started complaining that the Web App doesn't know some settings for mobile devices in Web.Config, and finally when I started the VS2003 to find out the reason on this machine I found that the web app runs under .NET 1.0 instead of 1.1. I reregistered 1.1 and it started working as correctly.

What was a huge surprise for me - when I uploaded my Web App to our production server it refused to show one page with button, just returns a blank page and then dies with the message in the IE status line: "Done".

Cool guys from M$! It was a problem to find out a real reason, I spent my last night fighting with IIS, thanks to one man from a newsgroup pointing me to this URL with explanaition what's really going on with this SP.

Regards, D.

Thursday, September 30, 2004 11:53 PM by Dmitri S

# FW: IIS7

Friday, October 01, 2004 4:27 AM by TrackBack

# re: House Sold Officially -- New House Almost Done

Cool stuff! Enjoy the new house!

Friday, October 01, 2004 9:27 AM by Darrell

# re: Service Pack 1 for .NET v1.1 Broke My ASP.NET App

Well, I had the same problem when installed NET v1.1 SP1. Submit button stopped to work on pages which has validation controls.
I've debugged validation JS script and found that ValidatorCommonOnSubmit() function does not return boolean value in WebUIValidation.js file.
Added return value to this functions and submit button started to work.
Modified function code:
function ValidatorCommonOnSubmit() {
event.returnValue = !Page_BlockSubmit;
Page_BlockSubmit = false;
return event.returnValue; //MK: return value
}

Friday, October 01, 2004 10:09 AM by Mindaugas Kubaitis

# IIS7

Mire az ember megszokja az IIS6-ot, m

Friday, October 01, 2004 10:22 AM by TrackBack

# IIS7 To Go Modular

Friday, October 01, 2004 11:03 AM by TrackBack

# IIS7 To Go Modular

Friday, October 01, 2004 11:04 AM by TrackBack

# re: Service Pack 1 for .NET v1.1 Broke My ASP.NET App

thanks for these info; we too had same problem. We copied newer version of sp 1 WebUIValidation.js to old directory of web server aspnet_client, it worked!

Once again thanks for this threads.

keep it up.
-Giby

Saturday, October 02, 2004 12:25 AM by Giby

# re: Why would anyone want to declare Sql in Xml ?

Was that last sentence pun intended? :-p

Sunday, October 03, 2004 8:40 PM by Chris Stewart

# re: Why would anyone want to declare Sql in Xml ?

Call me slow -- but I still don't even see a pun in the last sentence -- so I guess it was not intentional. Now I really feel stupid.

Sunday, October 03, 2004 8:50 PM by Paul Wilson

# re: Why would anyone want to declare Sql in Xml ?

Okay, I looked too and couldn't find the pun either. Help us out! I'm feeling stupid, too.

Sunday, October 03, 2004 8:54 PM by Jay Nathan

# re: Why would anyone want to declare Sql in Xml ?

I don't know why you'd use a tool to do that. You could achieve the same thing by putting the SQL statements in resource files.

Sunday, October 03, 2004 9:20 PM by Darrell

# re: Why would anyone want to declare Sql in Xml ?

Ok, I got it immediatly... but it might be an age thing. I think the pun is "tool". You asked "so what do you think about this tool?" and that could, by some, be translated to "so what do you think of this moron?".

As far as to the technical merits of this tool...er... application, I could see this being a robust way to have an instant cross db engine approach in an instant.

Sunday, October 03, 2004 9:41 PM by Jason Shigley

# Re: Why would anyone want to declare Sql in Xml ?

I don't know if it's what Chris Stewart was referring to, but here in New Zealand "tool" is slang for a person who's a few beers short of a six pack (i.e. not so bright).

T.

Sunday, October 03, 2004 9:57 PM by Tim@ims.co.nz

# re: Why would anyone want to declare Sql in Xml ?

Sql in xml is "robust" ? And how is writing sql in xml "instant" ? Regular O/R mappers writes the sql for you -- now that is "instant". But I guess to each his own.

Sunday, October 03, 2004 10:01 PM by Paul Wilson

# re: Why would anyone want to declare Sql in Xml ?

1 point to update your query's instead of all inline...

That must be the reason...

Monday, October 04, 2004 6:15 AM by Mischa Kroon

# re: Why would anyone want to declare Sql in Xml ?

Oh, for the record it's not something I would do or recommend.

Monday, October 04, 2004 6:16 AM by Mischa Kroon

# re: Why would anyone want to declare Sql in Xml ?

I did this very same thing years ago in VB6. The idea was to declaratively generate the DAL. One of the cool things was it was very easy to run thru the DB and generate the XML from the stored procs. That being said, I never brought the idea forward to .Net, since code generation is pretty easy, and I never did need the flexibility that I thought I would need with the XML method. Somtimes you got to do things the wrong way in order to learn how to do them the right way.

Monday, October 04, 2004 7:19 AM by Don Demsak

# re: Why would anyone want to declare Sql in Xml ?

sql in xml is robust imo because it's better than say, a sql query map ala the old site server in plain text files. Is it better than an ormapper? I don't have an opinion there yet. I'm just trying to see things from all angles.

It's instant because if you have the persistance engine and only need the queries supplied then you could pick up the sql from the xml and not have to worry about supporting 32 different db engines. This could be combined with other approaches (pluggable db-engine communication layers, etc.) to provide a nice system.

Monday, October 04, 2004 11:34 AM by Jason Shigley

# re: Service Pack 1 for .NET v1.1 Broke My ASP.NET App

Guys, can all of you say if you're using smartNavigation (false of true) on your pages? Just check if this "magic" word is included into aspx pages? Try to delete this word and see how it works after that. I finally found that I used this option and got a lot of problems after this change. Not at once, only after upgrade with this 1.1 .NET service pack.

I found that both versions of my application compiled by fixed and non-fixed VS incompatible. After deletion of this option everything started working fine. Surprise!

And finally OPera ignores this problem and works good regardless of the fixed/non-fixed version.

Monday, October 04, 2004 11:29 PM by Dmitri S

# re: Service Pack 1 for .NET v1.1 Broke My ASP.NET App

I do NOT use smart navigation. The "errors" that I received were due to minor changes in the client validation files -- and due to them not being synced up on all websites. In other words, SP1 requires the new files, and if by chance your website doesn't get them in the SP1 install then your pages with validation will no longer submit in IE.

Tuesday, October 05, 2004 5:31 AM by Paul Wilson

# re: Why would anyone want to declare Sql in Xml ?

Ah yes, Jason, I see it distinctly now... And now that I do, it was really funny!

To Don's point, I think we all have a tendency to attempt building things to the Nth degree of flexibility, and often find that we'll never need it all. I usually find myself in this mode during the early stages of a project (for work or for pleasure). This type of design can really bog things down a lot, and now I try to go with an iterative process that emphasizes refactoring.

Hope I haven't morphed the subject too much.

Tuesday, October 05, 2004 10:50 AM by Jay Nathan

# re: Why would anyone want to declare Sql in Xml ?

Using Xml for Sql was suggested to me by the lead architect on the previous project I worked on. I dragged my feet a bit so there was "no time" to implement. Fact is, I was not in favor of it mainly because I think adding flexibility merely to avoid recompiles is overrated. The compiler is a pretty efficient program in my experience. I have created many configuration-driven apps and found them to be a pain when I had to go back in and remember all the rules.

Tuesday, October 05, 2004 6:01 PM by Dave Blair

# Re: GotDotNet Workspaces work better with FireFox

You mean you haven't changed your default browser to Firefox yet?!?!?! Have you got the developer extension for it? It's Fantastic! (Plus the ctrl-T and Ctrl-F buttons).

T.

Tuesday, October 05, 2004 11:26 PM by Tim@ims.co.nz

# re: GotDotNet Workspaces work better with FireFox

I once had to switch from IE to Firefox to sign up for a section of Microsoft.com. It was a passport-enabled site (I think the ISV or partners area, if I remember correctly). Very strange.

Wednesday, October 06, 2004 1:12 AM by Shannon J Hager

# Today

Today

Wednesday, October 06, 2004 2:13 AM by TrackBack

# re: GotDotNet Workspaces work better with FireFox


I recently switched to Firefox on my Mac, but unfortunately there is a bit of a nasty keyboard bug which locks the keyboard within the browser - so my daughter is still on Safari atm. I am full time on Firefox for Windows though (except via SharpReader :( ).

Wednesday, October 06, 2004 3:29 AM by Ross

# re: Examples of O/R Mapping vs Stored Procedures

Also another good reason NOT to use SP's is that most people put _so_ much functionality in SP's that they most of the time would not do in dynamiq-inline-sql statements (parameterised of course). I just came on a project where sp's are calling sp's and have lots of if's and way more.

Some freezing is done with a datetime as parameter. SQL functionality is used to get the last day of the previous month and that date is used as parameter for other SP's. But what if something goes wrong and you have to get the last day-of-the-month for 3 months ago? Then you have to rewrite the SP's or do everything manually. Just a simple example of things that can go very wrong with SP's because you're possible to do. I can only fear of what to expect once we can use .NET code in SQL2005!

Wednesday, October 06, 2004 4:27 AM by Dennis v/d Stelt

# re: GotDotNet Workspaces work better with FireFox

Get the IEView plugin as well. It will add an "Open this page with IE" menu item to the right-click context menu.

Wednesday, October 06, 2004 1:01 PM by Andy

# re: Why would anyone want to declare Sql in Xml ?

The only place I find it useful to have SQL out in XML is to make the SQL more server agnostic (SQL Server/Oracle/DB2)..
But, then, I am not sure if the OR mapper in question can deal with that correctly or not.

Wednesday, October 06, 2004 1:26 PM by Girish

# re: GotDotNet Workspaces work better with FireFox

Don't hold your breath hoping that FireFox will fix your problems on kids sites -- these are usually related to the Flash player itself. Better luck if you re-install the player.

Wednesday, October 06, 2004 6:23 PM by Steven Campbell

# re: Why would anyone want to declare Sql in Xml ?


Maybe because,

1. They dont want to put SQL in SPs?
2. They want to manually change everything everytime there is a DB change (Yup this is Total Control)?

Hmmm....Im out of ideas here...:)

Thursday, October 07, 2004 6:37 AM by Chris Ongsuco

# re: House Sold Officially -- New House Almost Done

That is great news... I've been thinking of doing the same thing myself (on the house). Where did you get a website for a flat $8? Enjoy the new house!

Thursday, October 07, 2004 9:22 AM by Scott Dockendorf

# re: House Sold Officially -- New House Almost Done

I meant the domain was $8 (GoDaddy). I already had the hosting account with WebHost4Life, so the rest of the setup was just an evening of making a nice looking page and hooking up the domain. We made a nice one-page flier with the hilites and one nice external photo, and then mentioned the website on both the sign and the flier. Then those that wanted more details or photos could easily go check out the website for the rest. One thing worth noting is that we received very few calls with this approach -- which I think is what you want. In other words, I didn't waste time fielding lots of calls with silly questions, since they were already answered elsewhere. Instead, nearly every caller we had was pretty seriously interested. My wife was very troubled by this lack of calls after a while, since her friends saling their houses were getting so many more calls. But I don't want a lot of calls -- I just want a few calls and one buyer -- but its something you have to be prepared for since it can make you wonder. Finally, although most everyone had a buyer's agent, I do not think there was ever a prospect brought to us by an agent! In other words, in every case (or almost every case anyhow), the potential buyer found our house on their own, and then either they or their agent contacted us. So selling it on your own will also eliminate a lot of traffic that you might want to have, but in the end, if you're patient, you'll get someone that really "wants" your house, and that's good.

Thursday, October 07, 2004 9:36 AM by Paul Wilson

# re: Service Pack 1 for .NET v1.1 Broke My ASP.NET App

This worked for us:
modify the WebUIValidation.js to include the line "return true;" in the ValidatorCommonOnSubmit() funtion

Thursday, October 07, 2004 11:34 AM by Jack

# re: News about IIS 7 -- IIS done Modular

Maybe I don't get your point, Andrew...are you just crowing about the inferiority of an MS blog for the heck of it? Just doesn't seem like a great contribution to the comments...

Thursday, October 07, 2004 12:33 PM by Justice

# re: Service Pack 1 for .NET v1.1 Broke My ASP.NET App

I also had the same problem, but I wasn't using the Validation control. I was using the submit button and populating a datagrid on return. Everything was working ok until I wanted to change the styles of the grid. I changed the CssClass and suddenly the app stopped working.

I tried the solutions above, but nothing seemed to work. That's when I noticed that after changing the DataGrid CssClass, the InitializeComponent() was missing the delegate call and was completely empty. I simply put in the
this.ButtonSubmit.Click += new EventHandler(ButtonSubmit_Click);
back in the code, and it worked. I still don't know how it got erased in the first place.

Thursday, October 07, 2004 2:47 PM by Felix

# re: Why would anyone want to declare Sql in Xml ?

As far as I understand the philosophy of iBATIS, it's a very simple and straightforward tool, which also makes it very flexible. It seems to be as light as you can get and still call yourself an O/R mapper. It seems to lack a lot of the features of more advanced mappers, but it also avoids their complexity.
I'm not a specialist on this subject like you are, but I believe that one of the most complex parts of an O/R mapper is the one that generates efficient sql to query the database. iBATIS avoids the problem completely.
It makes it a little clumsier to write your queries because you have to do some escaping, but that's not a very big problem.
And you can still use stored procedures if you want.

Friday, October 08, 2004 1:27 PM by Bertrand Le Roy

# re: Simplicity: Keep It Simple Stupid (KISS)

Complexity has a tendency of creeping into business requirements anyway so why add any unnecessary complexity into the code? Just look at the typical rules businesses have in their processes!

Speaking of complexity in APIs (and without starting a flamewar!), I had this problem many times as a Java developer where many of the APIs (no matter how powerful and elegant) are just so much more complex than they need to be!

Friday, October 08, 2004 2:26 PM by Jonathan Cogley

# re: Simplicity: Keep It Simple Stupid (KISS)

Paul, while I agree with your premise that simple is good; I think that calling yourself "not that smart" is perhaps duplicitous. How many "not that smart" people quote Ockham's Razor?

It is actually your intelligence that allows you too see the forest, instead of just each individual tree. The ability to abstract is a hallmark of a good architect, and I beleive that your Maths background serves you well here, instead of the CS graduates firmly grounded in the intricacies of implementing yet another Stack, or Queue.


Simplicity of Design.
Simplicity of Implementation.
Simplicity of Use.

All of these are goals to strive for. That's why I'm interested in when Aspect Oriented Programming becomes mainstream. When you can declaratively state how your program will behave, without vomiting "plumbing" code throughout your application, then we've reached yet another plateau in our search for programming simplicity.

Friday, October 08, 2004 3:33 PM by Jerry Dennany

# re: Simplicity: Keep It Simple Stupid (KISS)

I prefer complexity, myself.

Friday, October 08, 2004 8:12 PM by Jeff Atwood

# Pre-Compiling ASP.NET Web Pages

Sunday, October 10, 2004 6:20 AM by TrackBack

# re: Simplicity: Keep It Simple Stupid (KISS)

I have just read it blog and remembered my first steps when i tried too understand the community starter kit from asp.net. I agree with author of KISS, but i would like to add one rule that also help sometime for begginers and stupid programmers like I. It is small errors that must be in any read-to-use application. Why? Because it is one element of studing: "to find error you must learn more about structure and foundations of topic".

Monday, October 11, 2004 1:08 AM by LukCAD

# Keeping it simple - preach on, brother!

Monday, October 11, 2004 12:42 PM by TrackBack

# Keeping it simple: Preach on, brother!

Monday, October 11, 2004 12:42 PM by TrackBack

# re: What Makes an Effective Software Manager?

This article really describes the most basic values software managers should have. Everybody probably knows them already. Most choose to ignore them for somewhat reason.

Tuesday, October 12, 2004 2:27 AM by Bunter von Muffen

# re: Nothing is Perfect -- Why Can't We All Just Get Along

I've seen some amazing arguments on the asp.net forums by the authors of a few different O/R mapping tools. They get very nasty. But not as nasty as some of the opinionated people in comp.object

Still, its the internet. People say cruel and things all the time. The trick is to not let it get to you, even if it is a personal attack on you or your products.

Negative feedback is still positive. It just depends how you spin it.

You're right about complexity though.

"Simple things should be simple. Complex things should be possible"

Wednesday, October 13, 2004 12:26 AM by Sean M

# re: Nothing is Perfect -- Why Can't We All Just Get Along

I agree with the last comment. Dont let them bother you that much. Listen to what they have to say and then tell your side of the story and leave it there. If they want to be rude and post bad things about you where you cannot "defend" yourself, its up to them.

If I dont agree with you I believe the best way to tell you that is to either email you or post a comment in the blog. But most of the times you have good things to say and I apreciate your work. :)

Wednesday, October 13, 2004 1:11 AM by Patrik

# re: Nothing is Perfect -- Why Can't We All Just Get Along

There aren't actually simple things in the world, that's a strong trend of thinking amongst philosophers nowadays :) But seriously, if you refer to ASP.NET forums, in my opinion there aren't many brilliant software developers doing active posting there. And not so brilliant ones like to write. Alot. Without constructive approach. Which is sad, because nonpragmatic and nonconstructive persons shouldn't be in the software business. But somehow there is huge amount of those people writing software.

Wednesday, October 13, 2004 1:58 AM by Bunter von Muffen

# re: Nothing is Perfect -- Why Can't We All Just Get Along

Paul, if you're referring to the asp.net forum thread about O/R mappers: don't let it get to you, it's not worth it. Not a lot of people read these forums and even less would believe some random guy over an MVP like you.

I've learned some time ago, that argueing on asp.net forums isn't worth the effort. Sometimes I take the time but afterwards I always think: why did I spend that time? Like that guy who slaughtered your mapper compared to NHibernate. Don't bother with that. If you do, you give him the credit that he knows what he's talking about. Well, he's not, trust me on that. Everyone who's looked at the code of NHibernate knows that.

When you let them and their critizism get to you personally, you make them people who know more about the topic than you do. That's not true, they spin rethoric, marketing poop. Say what you have to say and that's it. Believe me, someone who reads your words and then theirs is not all of a sudden starting to believe them instead of you.

You also have to realize, that the moment you decide to participate in a discussion, is also the moment you give up your defenses and you open up yourself. The more you post, the more flack you can expect, the more outspoken you are, the more people will say you're arrogant. The fun part is: your texts are also there, with arguments, with reasoning. People open for anything will read your texts and will find them trustworthy. If they read the rethoric of the trolls afterwards, it will probably more convince them you are right than that the trolls are right.

Wednesday, October 13, 2004 5:16 AM by Frans Bouma

# re: Nothing is Perfect -- Why Can't We All Just Get Along

Hi Paul

I have been doing research into the <non silver bullet> architecture (and architectures in general) of late, and stumbled across your comments and found them pretty interesting.

I do agree with you that the "out of the box" features are somewhat bloaty, but I suspect that some of the users of the forum in question may not be used to constructive criticism. Never mind them. Anyway, you mentioned that there are several other architectures that are more "ready". Would you mind dropping some names?

I'm interested in checking out your recommendations. Thanks.

Wednesday, October 13, 2004 6:08 AM by James Thompson

# re: Nothing is Perfect -- Why Can't We All Just Get Along

I'm always interrested in what people have to say in the KISS department.

I will probably do a little series of my own on the subject, when I find the time and lust for writing such a thing :)

Furthermore, keep in mind that people tend to be a lot faster in giving negative feedback, then positive feedback.

So by all means go for it :)

Wednesday, October 13, 2004 7:40 AM by Mischa Kroon

# re: Nothing is Perfect -- Why Can't We All Just Get Along

Um, actually Paul, if you'd read the little snippet that Rocky quoted you'd find two words in quotes: "loves" and "experts". Now I don't know how you intended for those words to be read, but I'll tell you that when I see them quoted within the context of your sentences I immediately think sarcasm with a wink or roll of your eyes. Perhaps you didn't mean it that way, but frankly I think you did and I think Rocky has a right to be miffed with you.

I just re-read what Rocky wrote in response (over a week ago mind you) and to be honest he didn't exactly tear you a new 'hole. About your comment he wrote: "It is not the most professionally phrased comment..." and frankly I agree, you definitely could have been more tactful. Furthermore, the people on the CSLA board (linked from Rocky's site) didn't exactly "go after you" either although they were supportive of CSLA as a framework.

Perhaps there is some other location where you are being "burned in effigy", but absent that I don't understand the problem.

For the record I own both Rocky's book AND your OR/Mapper (paid my $50 on Friday). I find value both in Rocky's book and his other writings and I've enjoyed your writings and think your product may be valuable to me in the future (albeit for now I'm not interested in tweaking it to meet my personal idiosyncracies).

I also think you should continue your series. I won't say that the first KISS article did much for me, but I took it for being an introduction and was interested in seeing more meat in future articles.

Wednesday, October 13, 2004 9:01 AM by Kenneth Russo

# re: Nothing is Perfect -- Why Can't We All Just Get Along

Keep up the good work, Paul. Honesty may not win you the praise of everyone, but it will probably win you the praise of those from whom you most desire it.

Wednesday, October 13, 2004 9:15 AM by Jay Nathan

# re: Nothing is Perfect -- Why Can't We All Just Get Along

Keep ya head up, brotha!

Wednesday, October 13, 2004 9:25 AM by Darrell

# re: Nothing is Perfect -- Why Can't We All Just Get Along

Ah, I now found the article which is the issue at hand here:
http://www.lhotka.net/WeBlog/PermaLink.aspx?guid=7d167f5a-487b-4105-967f-ba420a5d9f31

Mr. Lhotka writes:
"I think it is important to note up front that Mr. Wilson sells an O/R Mapper tool, and so has some bias. It is also important to note that I have written numerous books on distributed object-oriented architecture, and so I have some bias."

When people start with that, I stop reading/listening. Mr. Lhotka might have written some books and has something to say because he wrote some framework (which isn't that great if I have to rely on the people I spoke who have used it, but that aside) but that's totally irrelevant as well as that Paul sells some product.

That sentence of him exactly says: "Paul is biased, and he wrote this to sell a product, you may believe what he says, but keep in mind that it is highly likely it's marketing rethoric".

He wrote a lengthy article after that, and I'm not sure if I'll even read it.

Wednesday, October 13, 2004 9:34 AM by Frans Bouma

# re: Nothing is Perfect -- Why Can't We All Just Get Along

"Why can't we all just get along". Good question. I've asked a few questions in the ASP.NET forums before and I always encounter someone trying to sell their product or I get flamed. Without using names, he makes another popular O/R mapper. I'm sure you've all crossed him at one point or another. I always found in the forums, the policy is "ask a simple question, get a kick in the face".

Due to these incidents, I stopped going to the asp.net forums and turned to Paul. He gives great advice as well as asking for your thoughts on some of his own code. I saw flames being thrown at him over the "dynamic SQL vs. Stored Procedures" article a few weeks ago. Instead of flaming, why not go and do your own tests to see for yourself! The fact is that he was right. If you think he's also trying to push sales for his ORmapper. I severely doubt that. At $50 a pop, Paul isn't getting rich quick. He is simply selling good quality code minus the ego and big $$$ figures!!

"KISS" is the way that software developers should be designing their APIs. Abstraction is key to any good design. You want to see stupid and complex designs that aren't very expandable, take a look at Microsofts Petshop 3. This is the worst piece of junk in the asp.net community. The ASP.NET Forums are awesome in my opinion with the one exception, the data provider implementation. If Rob was to build the forums out of Paul's ORMapper, they wouldn't need the specialty data library.

I almost feel like I need to write a disclaimer at the bottom of my comments now.

Wednesday, October 13, 2004 9:39 AM by Allan Ritchie

# re: Nothing is Perfect -- Why Can't We All Just Get Along

I worked in a company inwhich Rocky was the technologist, and the company implemented his architecture all over the place. Frankly, by not being simple, that architecture tought me the value of KISS and common sense. I enjoy your work because of this.

Keep it simple.

Wednesday, October 13, 2004 9:42 AM by Andy

# re: Nothing is Perfect -- Why Can't We All Just Get Along

>> Would you mind dropping some names?
If you like Frameworks, then there are several very good commercial ones that advertise in all the magazines. I haven't used most of them, although I've spent time reviewing some of them, and many of them appear to be very complete and usable. MereMortals is one that comes to mind, but there are others also. I hate to be negative (again), but you usually get what you pay for -- although certainly there are exceptions on both sides. If you like RAD, then DeKlarit is excellent, and I think there are some others that advertise heavily that might also be good. If you like CodeGen, then there are a lot of templates that have been contributed to the CodeSmith community -- but you'll have to find which ones are your style as there are many. I think there are is also a similar community of templates growing around MyGeneration, although I haven't spent any time with it myself. And of course if you just want to avoid CRUD, then many O/R Mappers are great tools, although you may still need to use them with any of the above if you want more. All I really want to say is don't just assume that because something has reached a critical mass of attention that it is the best -- the opposite is often quite true.

>> I immediately think sarcasm with a wink or roll of your eyes
Sorry you believe that to be the case -- it was not at all intended to read that way -- but I can see how you can think so. I used quotes because I was not talking about Rocky or anyone in particular at all -- I was simply saying that you shouldn't blindly think that anything is perfect and ready to be used -- regardless of who is behind it (myself included). Maybe I read it differently, but my subject was really not CSLA at all -- it was about thinking code gen could be a silver bullet -- and CSLA was simply an example I pulled since it is well known. Yes, I did not say its great and should be the basis of your solutions, but neither did I say it was terrible and should not be the basis of your solution. I owned Rocky's VB6 CSLA book, and now his .NET CSLA book, and I've learned a lot from them. I also enjoyed his conference sessions more than most, and I thought he made excellent and unbiased contributions to the discussions on my project where I used CSLA the day he came. My beef is that CSLA has gotten a life of its own and that many people using it do act like its perfect and ready for every scenario. I would never make such claims about anything, not my product nor any category of products -- but there are some in the CSLA community that do just that. I'm not saying everyone does this, but there are enough that do this and make it difficult for any other views, as evidenced by this thread. Finally, I've been amazed at how many people contact me by private email to say thanks for saying CSLA isn't perfect -- and to share their own less-than-perfect stories. And yet they insist on anonymity.

Wednesday, October 13, 2004 10:23 AM by Paul Wilson

# re: Nothing is Perfect -- Why Can't We All Just Get Along


Paul - I hope you don't stay silent, regardless of whether or not anyone/everyone/someone agrees with you or someone else, the discussion is good regardless. Personally, I enjoy hearing alternative viewpoints because it helps me think more thoroughly through my *own*, providing me the opportunity to learn. Now, not everyone takes that opportunity, and some don't see it as such until much later, but it does happen for some of us nonetheless. If you decide to stay silent on some issue that you normally would have commented on, I feel you are cheating yourself and the community (not that you are obligated to us in the least!) from healthy (albeit contentious at times) debates.

Growth does *not* happen without opposition. That is a true principle regardless of the domain.

Wednesday, October 13, 2004 12:10 PM by Jason Bunting

# re: Service Pack 1 for .NET v1.1 Broke My ASP.NET App

Changing the this function in webUIValidation.js worked for me.

Before Change:
function ValidatorCommonOnSubmit() {
var result = !Page_BlockSubmit;
Page_BlockSubmit = false;
event.returnValue = result;
return result;
}

After Change:
function ValidatorCommonOnSubmit() {
event.returnValue = !Page_BlockSubmit;
Page_BlockSubmit = false;
return event.returnValue;
}

Wednesday, October 13, 2004 12:52 PM by Mitch

# re: Atlanta Bloggers

Steven, in Alpharetta: http://steven.vorefamily.net/

Wednesday, October 13, 2004 5:51 PM by steven

# re: CSLA: My Thoughts and Opinions

I'm curious to know what didn't work for you (in the project you cited in your personal note) with the CSLA framework that would make you not want to use it again. I own Rocky's C# Business Objects book (and have followed his (and Billy Hollis) column on MSDN and have enjoyed the read but have had some "philosophical" differences in the CSLA architecture. Is it that you disagree with the concepts or the implementation? And why?

Wednesday, October 13, 2004 5:55 PM by Lamont Harrington

# Shameless attempt at getting a gmail account

Wednesday, October 13, 2004 6:38 PM by TrackBack

# re: CSLA: My Thoughts and Opinions

I whole-heartedly agree with your statement that Rocky's books are excellent. Expert C# Business Objects is a fantastic book for understanding business objects and the challenges with managing them throughout their lifecycle. I don't know for a fact, but I am sure the VB.NET version is just as good with only differences in code snippets.

The book isn't a marketing ploy to get you to use CSLA.NET, but a good book on the practical use of several key .NET technologies (remoting, reflection, attributes, etc.) as well as just a good book to walk you through the creation of a framework to manage the lifecycle of business objects.

Even if you don't agree with the framework, the book is great. I started a chapter-by-chapter summary of it that can't do it justice, but it is a really good book:

http://davidhayden.com/blog/dave/archive/2004/10/04/512.aspx

As a side note, I think your opinion is very valuable Paul as you are truly a skilled developer and an MVP. However, even more than others, it is important that you be specific when making good and bad comments so they are taken in the correct context.

It is truly frustrating for people making decisions about products to get opinions from people who have an outdated and/or limited view of a product and didn't qualify that their comments pertained to version 0.8 and they haven't re-looked at it in over a year :) I am sure you run into the same thing with your O/R Mapper.

Stuff happens... at least you qualified your statements :)

Wednesday, October 13, 2004 7:33 PM by David Hayden

# re: Examples of O/R Mapping vs Stored Procedures

Hi there,

just yesterday i started my master thesis about o/r mappers. Can anyone of u give me a hint for good theories about that stuff? I really need 2 learn that stuff from the beginning, any good books would be great.
My main thesis will be about the pros and cons of O/R Mapping, perfomance and testing/describing some tools...
For any information, links and book tips i will be most grateful.

Best regards Christian

Excuse my bad english, i am german and not that used to it, sorry.

Wednesday, October 13, 2004 7:48 PM by Christian Braun

# re: Examples of O/R Mapping vs Stored Procedures

Martin Fowler's "Patterns of Enterprise Application Architecture" is good background.

Christian Bauer and Gavin King's "Hibernate in Action" is the best practical example book.

Scott Ambler at "http://ambysoft.com/mappingObjects.html" has a fair amount of information online.

Other online resources are "http://www.objectarchitects.de/ObjectArchitects/orpatterns/index.htm"
and "http://www.joeyoder.com/Research/objectmappings/"

Wednesday, October 13, 2004 8:34 PM by Paul Wilson

# re: CSLA: My Thoughts and Opinions

Lamont:

I don't think I would say it didn't work -- although it was a heck of a lot of work in my opinion (still ongoing when I left). Part of that work was in removing a lot of the features that we simply did not need and which were causing excessive memory use. Granted our system was not typical (lots of large recordsets and on Citrix), and I blame management for not listening better there. But the real "work" to me was in creating my business objects, and making sure that all the dependencies were correct also. Some of that can certainly be alleviated in many projects with code gen, but I simply believe there are simpler ways to do things. I've also led enough teams to know that there is a huge difference in what some consultants teach and what actually happens. So I want something simple for my teams to use and learn and maintain, while still being flexible and easy to extend. I'm simply at the place in my career where I'm tired of the same old things -- and I strongly believe I've found better ways. I didn't invent these things -- I actually learned from several others in the forums -- and from reading what the Java folks do.

Wednesday, October 13, 2004 9:48 PM by Paul Wilson

# Oklahoma Bloggers

Wednesday, October 13, 2004 11:30 PM by TrackBack

# Oklahoma bloggers

Wednesday, October 13, 2004 11:30 PM by TrackBack

# re: More Problems with SP1 for .NET v1.1

I have been having debugger issues as well with sp1. I have a thread going in

microsoft.public.dotnet.framework.setup

called

".net 1.1 sp1 install may have broken vsnet debugging"

I have gotten some feedback from MS. The part about the uninstall for sp1 being hidden as a hotfix is really annoying.



Thursday, October 14, 2004 3:42 AM by Paul S.

# re: Examples of O/R Mapping vs Stored Procedures

Wow that was pretty fast, thx a lot Paul!

Thursday, October 14, 2004 4:16 AM by Christian Braun

# re: Atlanta Bloggers

Boo! Hiss! Down with Atlanta Bloggers! :)

Cincinnati Bloggers RULE!

(After starting a ruckus, I now toss the ball to James Avery - http://dotavery.com/blog/)

Run James Run!

Thursday, October 14, 2004 8:34 AM by Dan Hounshell

# re: Atlanta Bloggers

Thanks Paul.

Thursday, October 14, 2004 9:28 AM by LukCAD

# re: Atlanta Bloggers

I am maintaining the OPML for the Atlanta bloggers at:

http://www.xmlinsiders.net/examples/atlantabloggers.xml

Thursday, October 14, 2004 10:38 AM by Kirk Allen Evans

# re: CSLA: My Thoughts and Opinions

Your reply above says "I want something simple...I've found better ways...I didn't invent these things..."
We're wrestling with simple/flexible .NET architecture issues like so many others, and your words caught our attention. Are the "better ways" and "things" in your reply referring to:

a) commercial tools -- such as your O/R mapper, UI mapper, or other products targeting architecture/framework issues?, or
b) concepts/ideas/practices that promote simple and flexible architecture, or
c) some combination of a) plus b), or
d) other!?!

Simplicity/flexibilty are worthwhile targets indeed, but we're finding that the practical nut&bolts mechanisms to get there are not easy to pin down. How ironic that the path to simplicity seems... complicated!! So we're curious to have you unpack more detail about what you've found (tools? practices? specifics?...) that promotes simplicity in .NET architecture without sacrificing power, flexibility, extensibility, etc. Please elaborate. Thanks.

Thursday, October 14, 2004 2:15 PM by Curious Coder

# Examples of O/R Mapping vs Stored Procedures

Thursday, October 14, 2004 3:55 PM by TrackBack

# re: CSLA: My Thoughts and Opinions

I agree with Curious Coder. Come Paul, spit it out :)

Friday, October 15, 2004 8:00 AM by James Thompson

# re: CSLA: My Thoughts and Opinions

Our company is a long-time user of CSLA. Most everyone hates it but its too late to easily change now. We went with CSLA since we thought it would make maintenance easier. But we have to write so much code to get it to work that its just ridiculous. A framework should make things easier and not force you to jump through hoops whenever something needs done. I don't think it offers us anything at all that we need that isn't easy for us to have done other ways easier. We would recommend anyone just now starting to look around to look elsewhere. Go with one of the 3rd party frameworks that are much better. Or from what I can tell from just playing an object mapper would be another good alternative. But stay away from CSLA since its just to difficult and offers nothing much in return for all the trouble. BTW, we were also burned by the datareader bug in CSLA and as far as I'm concerned it is in CSLA since there is little difference in the book between example of how to use it and the framework itself.

Friday, October 15, 2004 10:16 AM by Sam

# re: CSLA: My Thoughts and Opinions

I cannot believe that serious developers would take examples from a programming book and use them to implement real business solutions. I've just started reading VB.Net Bussiness Objects, and I'm glad that I have. However I would never consider blindly implementing the framework presented there. I will use the book to better understand the .Net framework.

Friday, October 15, 2004 11:43 AM by TriaxialGnat

# re: CSLA: My Thoughts and Opinions

Count me another disgruntled CSLA user. We did not follow it blindly. We just found it too hard for little gain. I find Wilson's mapper easiest and LLBLGen nice also.

Friday, October 15, 2004 11:54 AM by Raj

# re: CSLA: My Thoughts and Opinions

The correct answer is (c) !

O/R mappers go a long long way in helping to achieve simplicity, flexibility, and maintainability, as well as being able to produce results quickly. My first venture into O/R mappers was with Thona-Consulting's EntityBroker, and while its still one of the best I decided I didn't need the features that made it more complex than I could imagine. Lately I think NHibernate looks very promising, and its actually very similar to my WilsonORMapper from an external usage point of view, but its internal complexity makes it difficult to extend and its Hibernate heritage means its developers will probably not add new capabilities you want. I also think LLBLGen Pro is great if you like code gen, but that's still too complex for most teams I've been involved with. So while I think you'll be well off with any of those mappers, and maybe others, I do of course think my mapper hits the sweet spot of simplicity, both in usage and in its internal design for extensability.

Of course O/R mappers don't cover everything, so you still have to create other parts of your architecture and applications. For UIs, I am personally using my UI Mapper, which I need to find a little more time to finish before I'll release it. But I also think you can do some absolutely great things with Code Gen in the UI -- I'm familiar with CodeSmith myself, but MyGeneration also looks promising. Log4Net is of course the answer to all your logging needs, NUnit is great for unit testing business logic, and there are many other similar tools you can piece together for pieces of your architecture. The beauty of most of these tools is that you can pick and chose the ones that fit your style and needs -- and most of them play well together -- resulting in a simple architecture that fits your team instead of a ready-made framework. And of course, keeping current of best practices and current concepts/ideas goes a long way into the choices you make, as well as the pieces you have to build yourself.

In the end, there are a couple of things to keep in mind. First, every team and situation is different! I would never push the same methodologies or toolsets on every team or project -- although you certainly have to make some decisions quickly if its a new team that you don't know enough about, but even then you need to learn your team as much as your project. Next, know what's already available! I've seen far too many projects reinvent things that already exist -- whether it be things available in 3rd party or open-source tools, or things in the .NET framework itself -- so know the framework and stay abreast of what's going on. Finally, simplicity is a mindset that can be complicated! In other words, you have to actively strive for simplicity in many cases, and that's where refactoring is an essential tool that many project managers just don't get -- its a tradeoff between quick and easy now vs. flexible and maintainable in the future. I also find that many technical people are just too smart for their own good -- design patterns are just a tool, but many seem to think that they are an end to themselves.

I'll try to blog this and more soon.

Friday, October 15, 2004 1:50 PM by Paul Wilson

# re: CSLA: My Thoughts and Opinions

Paul - Response much appreciated. Thanks for jotting some more specific and helpful thoughts. Looking forward to more related blogging.

Sam - you say "...Go with one of the 3rd party frameworks that are much better." Do you mean an O/R mapper or some other kind of product? Which did you have in mind? We're in an "evaluating/choosing" phase and thus very curious about such things.

Friday, October 15, 2004 2:39 PM by Curious Coder

# re: CSLA: My Thoughts and Opinions

We abandoned csla. It was nightmare.

Saturday, October 16, 2004 5:56 PM by Xiao

# re: Status of my Open-Source Projects

Congratulations.

Saturday, October 16, 2004 6:16 PM by Wallym

# Multiple server forms in ASP.NET and XmlDbClient

Sunday, October 17, 2004 12:38 AM by TrackBack

# re: My Blog made the Local Newspaper in Cherokee County

>>narrowly devoted to software development
LOL! What would they think to people that blog exclusively on GC for the .Net Compact Framework?

Sunday, October 17, 2004 9:50 AM by Paul Lockwood

# re: My Blog made the Local Newspaper in Cherokee County

Despite the tech heavy influence in this article, I kinda have to agree with them, it is becoming more and more mainstream. My brother is a lawyer, and I can't think of a group less likely to change and use new ideas and technologies. But even some of the lawyers out where he lives and works (Chicago) have Blogs.

An interesting side note on the effectiveness and power of blogging - the way blogging increases visibility of the people who do blog is amazing. It's like viral marketing for some products, and in this case, we bloggers ARE the product.

And on the other side, you mean to tell me that there are people who have nothing better to do than to write stuff about programming online? And other people read it? Geeks!

Sunday, October 17, 2004 10:23 AM by Matt Ranlett

# re: My Blog made the Local Newspaper in Cherokee County

People seem to forget that college kids have been blogging for years. They might be talking about being in love or getting drunk, but it's hardly a new phenomenon.

Sunday, October 17, 2004 11:01 AM by Jeff

# re: My Blog made the Local Newspaper in Cherokee County

Burlington's weekly (kind of like a Village Voice of Vermont) just had blogs as their cover story. All policital ones though.

Sunday, October 17, 2004 11:23 AM by Julie Lerman

# re: My Blog made the Local Newspaper in Cherokee County

The Cherokee Tribune! Now, that's a metropolitan daily, if I've ever seen one...!

Sunday, October 17, 2004 10:41 PM by Jerry Dennany

# Stop the imminent provider model madness

Monday, October 18, 2004 12:05 AM by TrackBack

# re: Open-Source ADO.NET XML Provider -- WilsonXmlDbClient v1.0

Could someone post a sample code, please? I open a xml file but no content will be displayed. I just recieve FieldCount, RecordsAffected, IsClosed, Depth and HasRows.

Monday, October 18, 2004 5:30 AM by Mick

# re: Kathleen Dollard and Code Generation

Kathleen's article refers to "dual classes" when discussing partial classes. I know that partial classes are classes split over multiple files, but am not sure what dual classes are.

Is she referring to base and inherited classes?

Thanks,
Jason

Monday, October 18, 2004 12:01 PM by Jason

# re: Kathleen Dollard and Code Generation

Yes, I hadn't heard the term much either, but it does refer to inheritance.

Monday, October 18, 2004 2:00 PM by Paul Wilson

# re: My Blog made the Local Newspaper in Cherokee County

Congrats. I've gotten quite a few hits directly from the article, and my total number of hits has gone up about 10-20% a day. I guess more people read the Cherokee Tribune and own a computer than I might have thought.

Monday, October 18, 2004 4:47 PM by Roger

# Stop the imminent provider model madness

Monday, October 18, 2004 6:46 PM by TrackBack

# re: Why would anyone want to declare Sql in Xml ?

Dear Paul,

I assume when you say "so far the person that has been posting about this tool" that you are referring to the person who kept commenting on your very excellent article at TheServerSide.net. I must say that the gentlement in question was neither elequent nor very polite in stating the case for iBATIS. I'm not sure if I could do better, since I'm not a member of the iBATIS team, but simply a very happy user of that library. In any case, I'll try to explain why iBATIS is "different"...

For me, the two features I look for in an ORM tool, with all other features being equal, are the following:
1. It should not dictate the layout of the inheritance tree for my domain model, i.e. it shouldn't force me to inherit from certain base classes.
2. It shouldn't dictate or restrict how the database is designed.

Feature #2 is important because oftentime the database is inherited from a legacy product or is handed down my the DBAs.

I must confess that my experience with O/R mappers is restricted to two products, one opensource, and the other commercial. And both of them either dictated the class hierarchy or the database design.

iBATIS doesn't impose either limitation since it maps objects to SQL statements. So it's very tolerating of bad database designs, and of bad domain model designs for that matter.

By the way, iBATIS does allow the use of stored procesures.

If I had full control of the databsae design on a given project, I would consider another, more feature-rich code generator or O/R mapper over iBATIS. But if that is not the case, then iBATIS could be the best, if not the only choice.

Hope this helps.

-- Mohammad

Monday, October 18, 2004 7:02 PM by Mohammad Abdulfatah

# re: Why would anyone want to declare Sql in Xml ?

While I know many O/R mappers do impose base classes and/or database designs, I do not think that all of them do. For instance, my mapper does not require a base class, and all interfaces are optional. Also, very little is assumed about your database design, although certainly not every feature is available in all cases (for instance if you use composite keys). I'm pretty sure similar things can be said about a few others, like NHibernate, so I'm not just trying to sale my mapper here.

Now I can agree that its a nice extra feature to be able to totally specify your own sql in the rare cases where you need to do so, but I believe that there ARE ways to do this already, and the fact is that I want the majority of my cases to have their sql generated for me. So I still fail to see why I would want a tool that does little if anything for me other than take my own sql, especially if I have to define it in an xml file of all things. What are these other ways? Either use a stored proc for those cases, or step out of the automatic "mapper" features and use the DAL features that some of these mappers also include (mine and others).

Anyhow, thanks for your answer -- it was at least making sense and I don't mean to belittle it if it seems that way. I just think its based on misconceptions of a few mappers, and its also attacking the wrong problems.

Monday, October 18, 2004 9:36 PM by Paul Wilson

# re: Atlanta Bloggers

Any of you folks know a good technical recruiter in the ATL area?

Monday, October 18, 2004 10:58 PM by steven vore

# re: Atlanta Bloggers

Good recruiter? Sounds like an oxymoron. :) Seriously, there are tons of recruiters, but I don't know any that are better than others, or that would actually represent you instead of just trying to fill quotas.

Tuesday, October 19, 2004 5:51 AM by Paul Wilson

# re: Atlanta Bloggers

>would actually represent you instead of just trying to fill quotas

yea, that's what I'm looking for (though right now I'd even take one that was just filling quotas, if they had contacts into decent job offers ;-)

Tuesday, October 19, 2004 9:57 AM by steven vore

# re: CSLA: My Thoughts and Opinions

Count another disappointment and abandonment of CSLA here.

Tuesday, October 19, 2004 11:16 AM by Tony

# re: My Blog made the Local Newspaper in Cherokee County

Does any one actually believe there is a mainstream anymore? When news about the news in a local newspaper from Cherokee County is being read by someone up at 2:45 AM here in Tokyo, it's pretty evident that the idea of mainstream is dead. It was an artifact of media control concentrated in the hands of a few. Blogs have been in the news for years. If they haven't been covered in the news you've been hearing, reading, or watching perhaps it's time to change sources.

"the premise was that blogs are getting mainstream"

Tuesday, October 19, 2004 1:50 PM by Max Hodges

# re: CSLA: My Thoughts and Opinions

I find it completely understandable but not a little sad that people have had bad experiences with CSLA. I've seen this kind of thing a million times in a million companies (mmm, exaggeration there!) with every 'new' idea/methodology/example-of-how-to-use-a-technology.

Think about all the 'best practice' articles and building-blocks, examples, code snippets, whole bleedin systems, etc., etc. printed on MSDN over the years. Then think about how many times you have had to deal with code where the author didn't dig deeper, didn't use his/her own knowledge, experience, expertise, training, whatever but just blindly followed along ONE article or ONE book to guide an entire system or, worse, an entire company's software development strategy.

At the end of the day we are commercial software developers. Books do not give us the ANSWERS or FREE systems or frameworks or any such holy grail that means we never have to think again about our jobs. All these things: books, articles, examples are for our consumption to help equip us with a greater arsenal of knowledge to solve the next problem.

I love Rocky's framework. I have learned and taken a whole bunch from it, as I have from MSDN and all the other sources I can get my hands on – not least my own experiences! I use a framework of my own now that is based on, but is very different from, the EXAMPLE framework in Rockys’ book. Why is it so different? Because I develop COMMERCIAL software where every new system has its own peculiarities and my skills as a programmer is to adapt and solve in an efficient manner, bring what I can, create what I can't. And always consider the lifetime of a system and the way in which it will evolve.

By the way, Paul, I do feel that you came in for some harsh criticism from the CSLA forum. Well, you probably brought it down on yourself but you were gracious in the end. I feel strongly about how a single throwaway comment can lead to completely unreasonable negativity about a system/idea/book/…I have seen it cost good people jobs in the past. Thing about blogging is that while it may be aimed at specific professionals it is also accessible to people who are not in that audience! How many times have I had to reassure bosses of this or that after they come in all panicked after reading some comment in an article that they really were not equipped to read. How many times have we all had to sit our bosses down and explain the XML is not the end to all their problems – or web services or, now, SOA….???

Ok, my rant is over. All I will say to all involved it is don’t expect anyone or anything else to solve your problems – use whatever help you can get but put it with your own knowledge and experience because that is what you are getting paid for (not for buying a book or paying $50 dollars to a tool!). AND, share your experiences whenever you can.

Tuesday, October 19, 2004 8:11 PM by jh72i

# re: CSLA: My Thoughts and Opinions

Excellent post "jh72i". I guess part of my problem was that my boss at my last job was "sold" by some consultants that CSLA was the answer that we had to use. My opinions were belittled, my previous project was ridiculed (which was a quickie ASP.NET project that didn't justify an elaborate architecture of any type), and my boss was showed the book which proved it must be true. They told him that no using this tried and true framework would cost them months, both short-term and long-term, and yet later most of the other consultants were able to confide in me the opposite -- it was just the "sale" in other words. And that is my main gripe -- there are many people that should know better but talk it up in such a way that they convince others with less experience that it is a silver bullet. And that's also the exact same response that I got in those forums (from a small minority probably, but a very vocal one).

Tuesday, October 19, 2004 9:00 PM by Paul Wilson

# re: CSLA: My Thoughts and Opinions

Hey, and I understand your pain (and Rocky does too) about those 'salesmen'. That's what prompted me to post to your site, Paul. There are some absolutely excellent people contributing to the CSLA forum (and some even more excellent NOT contributing!) but I truly get the impression that many expect too much for too little of their own input, if you know what I mean. Any developer that accepts things at face value without question worries the hell out of me! And, those that then go on to convince others....well...very scary results.

I first heard of CSLA when I started work in a company that had decided to use it..because they read the book..to develop a multi million Euro project in the financial services sector. The system actually manages billions and billions of Euros. To my astonishment there were no tests, trials, anything done on it - they just trusted it would be great!!! Boy-oh-boy-oh-boy!!

It is a great system now but only because a colleague and I made it so. See, lots of what Rocky's does I love and undertsand completely but I don't always agree that everything fits well in the types of companies I work for - that is something that is little talked (blogged :) about: the influence of the people that manage systems over their lifetime after the initial development phase. Like, the OO systems can die a death in a very short time if the company doesn't carefully manage the code.


Thursday, October 21, 2004 11:43 AM by jh72i

# re: My Blog made the Local Newspaper in Cherokee County

You may want to update the link to the Tribune article. They moved it on us.

I've updated my link at http://rainbowfish.typepad.com/ronandroger/2004/10/interview_with_.html.

Thursday, October 21, 2004 4:58 PM by Roger

# re: Status of my Open-Source Projects

need info about Master & Base Form in ASP.NET

Saturday, October 23, 2004 4:42 AM by ahad zubair

# .Net 1.1 Service Pack 1 Issues

Tuesday, October 26, 2004 9:45 AM by TrackBack

# .Net 1.1 Service Pack 1 Issues

Tuesday, October 26, 2004 10:13 AM by TrackBack

# AppSettings can Reference an External Config File

AppSettings can Reference an External Config File

Friday, October 29, 2004 1:34 AM by TrackBack

# Open-Source ADO.NET XML Provider -- WilsonXmlDbClient v1.0

Thursday, November 04, 2004 2:08 PM by TrackBack

# Open-Source ADO.NET XML Provider

Thursday, November 04, 2004 2:11 PM by TrackBack

# re: Status of my Open-Source Projects

The GDN link to the WilsonXmlDbClient does not work. Was it moved?

Friday, November 05, 2004 11:32 AM by Travis

# Using Forms Authentication with Windows Authentication (

Using Forms Authentication with Windows Authentication (

Friday, November 05, 2004 2:55 PM by TrackBack

# re: Status of my Open-Source Projects

Works fine now -- GDN sucks though, so no telling what was happening earlier.

Friday, November 05, 2004 3:12 PM by Paul Wilson

# Pozn

Tuesday, November 09, 2004 5:48 PM by TrackBack

# Pozn

Tuesday, November 09, 2004 5:50 PM by TrackBack

# Atlanta Geek Dinner - 11/15/2004, 6:00 pm, Perimeter Mall Food Court

Thursday, November 11, 2004 11:55 AM by TrackBack

# Atlanta Geek Dinner UPDATED - 11/15/2004, 6:00 pm, El Azteca Restaurant

Thursday, November 11, 2004 5:00 PM by TrackBack

# re: CSLA: My Thoughts and Opinions

Hi Paul

I think the value in CSLA or any other framework for that matter is that they promote consistency. Having been in the field for almost 20 years that counts for a great deal. Also, in my humble opinion a track record with a particular approach/framework is paramont to understanding it strengths and weaknesses in solving a particular problem.

Looking forward to giving your ORMapper a try.

Regards
Kevin Weir

Friday, November 12, 2004 5:16 AM by Kevin Weir

# re: Moving Into New House Finally Done

Congrats on the new house (and being done with the move of course).

Monday, November 29, 2004 11:33 AM by Chris Wallace

# re: Moving Into New House Finally Done

Congrats on getting settled in. Due to the company I worked at being acquired, I ended up moving 4 times in 4 years, and now I just shudder at the thought of moving again. I'm not part of that company anymore, and I don't plan on moving again until we move to somewhere warm - a long time from now unfortunately!

I can only imagine what it was like doing it with kids to boot!

Monday, November 29, 2004 12:21 PM by Eric G. Harrison

# re: Moving Into New House Finally Done

Yeah, moving is a pain. Fortunately (or unfortunately) I was in Iraq when my wife moved us from our apartment to our new house, so I didn't feel that pain, but I, too, hate moving.

Monday, November 29, 2004 2:14 PM by Jeffrey Palermo

# re: Moving Into New House Finally Done

Congrats on the new house, Paul! Great to hear from you.

Monday, November 29, 2004 9:25 PM by Jay Nathan

# re: The Best Advertising is Free

Too bad for you the thread is not on the FP anymore ;)

(but people still read it apparently, according to our referrers).

PR is much more valuable than payed advertising. Not only does it come free (mostly), it also looks like normal talk/information, not ads no-one will look at. :)

Tuesday, November 30, 2004 10:17 AM by Frans Bouma

# re: Book Review: Open Source .NET Development

Paul,

Thanks for the review! I think you make an interesting point that there are some missing things in the book. As you mentioned I intentionally left out some things. Most notably O/R mappers and XML tools. I intended these topics to be for another book. We will have to see if that ever appears?! There are so many open source projects showing up that it is a challenge just keeping up!

Tuesday, November 30, 2004 12:24 PM by Brian Nantz

# Code Generation

Code Generation

Thursday, December 02, 2004 12:09 AM by TrackBack

# Too many bugs in my life...

Friday, December 03, 2004 2:54 PM by TrackBack

# Too many bugs in my life...

Friday, December 03, 2004 2:55 PM by TrackBack

# re: Moving Into New House Finally Done

Paul, congrats on getting the move done. I sympathize with you. We built a new house a new house and moved in about a year and a half ago. I said at the time that it was my last move. Well... my wife is ready to upsize again. I keep telling her that she's going to have to pay for professional movers this time!

Monday, December 06, 2004 5:15 PM by Dan Hounshell

# re: Review of Company XYZ's O/R Mapper

LOL :) I'm curious who asked you that... would you mind dropping the name here? :D (or in an email)

But those review questions indeed are annoying sometimes... "Could you provide an in-dept list of your mapper compared to product A and B?"... as if I've nothing better to do. :)

Wednesday, December 08, 2004 11:33 AM by Frans Bouma

# re: Review of Company XYZ's O/R Mapper

hehe, i would've given the same review

Friday, December 17, 2004 2:30 PM by Eric Newton

# .NET Framework 1.1 Service Pack 1 Issue.

Saturday, December 18, 2004 12:12 AM by TrackBack

# .NET Framework 1.1 Service Pack 1 Issue.

Saturday, December 18, 2004 12:29 AM by TrackBack

# Paul Wilson's Hilarious OR Mapper Review

Tuesday, December 21, 2004 12:19 AM by TrackBack

# re: Personal Update -- Please Pardon My Inactivity

God bless man, hope she is doing better real soon. My Mother in law is a survivor, I know it can be tough...Good luck.

Thursday, December 23, 2004 5:11 PM by M. Keith Warren

# Best Wishes to Jenny

Thursday, December 23, 2004 5:52 PM by TrackBack

# re: Personal Update -- Please Pardon My Inactivity

Livestrong!

Thursday, December 23, 2004 6:10 PM by Travis

# re: Personal Update -- Please Pardon My Inactivity

Best Wishes to your wife Paul.

Thursday, December 23, 2004 6:50 PM by Michael Chean

# re: Personal Update -- Please Pardon My Inactivity

I am praying for you and your wife. Please keep us posted. God bless.

Thursday, December 23, 2004 8:29 PM by David Neal

# re: Setting up SSL correctly with IIS and ASP.NET

You'd think that this is such a common requirement that there would simply be a checkbox on one of the IIS config pages!

Thursday, December 23, 2004 9:27 PM by Jerry Dennany

# re: Personal Update -- Please Pardon My Inactivity

Our thoughts and prayers are with you.

-Jerry

Thursday, December 23, 2004 9:28 PM by Jerry Dennany

# Setting up SSL Correctly with IIS and ASP.NET

Thursday, December 23, 2004 11:18 PM by TrackBack

# Setting up SSL correctly with IIS and ASP.NET (from: Paul Wilson)

Friday, December 24, 2004 12:03 AM by TrackBack

# [OT] : Best Wishes for Jenny and Paul

Friday, December 24, 2004 12:14 AM by TrackBack

# re: Personal Update -- Please Pardon My Inactivity

Best wishes to the both of you during the next couple of months. We'll be thinking of you and keeping you in our thoughts.

Friday, December 24, 2004 1:28 AM by scottgu@microsoft.com

# re: Personal Update -- Please Pardon My Inactivity

Of course I have no words, but to say good luck to you and your wife.

Friday, December 24, 2004 4:00 AM by Dennis v/d Stelt

# re: Personal Update -- Please Pardon My Inactivity

I'm not a native English speaker so I used the dictionary to translate: "Veel sterkte" (what we say to people in situations you're in now) and it said: "All the best", so I hope that's a correct translation. I hope your wife recovers soon and she overcomes this horrible decease. Chemo is horrible, but at least it gives some hope on recovery.

Friday, December 24, 2004 5:10 AM by Frans Bouma

# re: Personal Update -- Please Pardon My Inactivity

The best of luck to the both of you.

Friday, December 24, 2004 11:27 AM by Michael Hensen

# re: Personal Update -- Please Pardon My Inactivity

Paul and the rest of Nata1 says, long live Wilson Mapper!

We need this in a big way, anything I can do to keep this mapper strong. Nata1 loves wilson and the mapper :)

Saturday, December 25, 2004 12:26 AM by Paul

# re: Personal Update -- Please Pardon My Inactivity

Paul,

I have an unfortunately large amount of experience with the sort of thing your wife is going through, being a 6 year liver cancer survivor, in addition to a number of other problems. Please know that lots of folks out in the blogsphere and elsewhere pulling not only for your wife, but also for you and the rest of the family. No disease effects just the person with the disease.

The best advice we ever got was this: This is not a sprint, it is a marathon. You need to have your head in the game for the long term, and take care of your loved one, and take care of yourself as well.

Be well, and let your wife know we are thinking of her...

Saturday, December 25, 2004 8:46 AM by Douglas Reilly

# re: Personal Update -- Please Pardon My Inactivity

Paul,

Stay positive and beat that nasty disease!

Good luck and we'll be praying for you.

Regards,

Alex

Monday, December 27, 2004 8:47 AM by Alex Lowe

# re: Personal Update -- Please Pardon My Inactivity

Best Wishes to your wife. Thank your ORMapper.

Monday, December 27, 2004 11:20 AM by ccBoy

# re: Personal Update -- Please Pardon My Inactivity

My heart goes out to you and your family, Paul! I can't even begin to imagine.

Keep your head up, stay strong, and you guys will lick it.


Regards,
-Jason

Tuesday, December 28, 2004 11:26 AM by Jason Alexander

# [OT] : Best Wishes for Jenny and Paul

Tuesday, December 28, 2004 4:16 PM by TrackBack

# re: Personal Update -- Please Pardon My Inactivity

Best wishes to you & your wife.

Tuesday, December 28, 2004 4:40 PM by Ben Strackany

# RE: Personal Update -- Please Pardon My Inactivity

Paul,

Best of luck with this. You and your wife will be in my prayers.

-Christopher

Wednesday, December 29, 2004 3:26 PM by Christopher

# re: Personal Update -- Please Pardon My Inactivity

Paul and Jenny,

I wish you all the best. May you beat it together. Stay strong - Kia kaha.

Wednesday, December 29, 2004 10:55 PM by Tim Haines

# re: Personal Update -- Please Pardon My Inactivity

I'm sure you have read the theory and you know that probabilities are on your wifes side. Still you would be her most valuable doctor for the next years. My best wishes.

Thursday, December 30, 2004 1:32 AM by Nikos Delibaltadakis

# My Highlights of 2004 and Goals for 2005

Friday, December 31, 2004 8:35 PM by TrackBack

# re: My Highlights of 2004 and Goals for 2005

a wonderful 2005 to you too, Paul! and I hope your wife will recover from the cancer... take care..

Friday, December 31, 2004 10:03 PM by Frans Bouma

# re: My Highlights of 2004 and Goals for 2005

Happy New Year Paul. One of my personal highlights was meeting you at this year's MVP conference in May. All the best for the New Year for you and your family.

Saturday, January 01, 2005 12:55 AM by Darren Neimke

# re: My Highlights of 2004 and Goals for 2005

Good luck on the goals. I make such a list too but don't let anyone know in case of failure. You will see me at the PDC though.

Regarding User Groups: you will be welcomed at the C# group. Recently several more A-list developers have expressed an interest in joining the group. If the attendance holds steady then we will see a 'level 400' discussion every month. This Monday is more of a social, but in February we have a discussion on NUnit + TDD, March should be an in-depth coverage of GC and .Net Profiling tools.

Happy New Year Paul.

Saturday, January 01, 2005 8:20 AM by Paul Lockwood

# Re: Beautiful Weather in Atlanta -- Great for Rock-Climbing

Rock climbing's a wonderful sport. A lot of NZ programmers are into it - probably because of the problem solving similarities. It also offers instant feedback on your improvement. I.e. yesterday I couldn't climb this grade 18 climb, but today I've made it up. Wahoo! I try and go rock climbing at the local gym twice a week.

Sunday, January 02, 2005 7:04 PM by Tim@ims.co.nz

# Leak in .NET ContextMenu

Tuesday, January 04, 2005 4:45 AM by TrackBack

# re: My Highlights of 2004 and Goals for 2005

Let me know when you are going to a user group - I might tag along.

Happy 2005!

Tuesday, January 04, 2005 12:04 PM by Jerry Dennany

# re: My Highlights of 2004 and Goals for 2005

>> Let me know when you are going to a user group - I might tag along.
See I told you :) If Paul Wilson attends a UG the attendance shoots up. Seriously seeing more MVPs would be good for the community, but I realize the long drive in traffic most MVPs have when attending any of the groups

Wednesday, January 05, 2005 10:24 AM by Paul Lockwood

# re: If you don't call Dispose then you're going to hell

Thursday, January 06, 2005 3:33 PM by TrackBack

# re: I am: Not nerdy, but definitely not hip.

Its ok Paul. I'll always thing of you as nerdy, if you'll do the same for me. :-)

Wally

Thursday, January 06, 2005 3:45 PM by Wallym

# RE: I am: Nerdier than Paul

Thursday, January 06, 2005 4:32 PM by TrackBack

# re: web.config and App.exe.config for settings JUST DOESNT WORK

Thursday, January 06, 2005 4:51 PM by TrackBack

# re: I am: Not nerdy, but definitely not hip.

I think you cheated. I got an 80 and there's no way I'm 235% nerdier than you.

Thursday, January 06, 2005 5:28 PM by Jon Galloway

# re: I am: Not nerdy, but definitely not hip.

A statistical anomaly, I assure you!

Thursday, January 06, 2005 8:38 PM by Jerry Dennany

# re: WilsonORMapper v3.1 Released One Year Exactly After v1.0

Nice! Congrats on the new release.

Friday, January 07, 2005 4:35 PM by Steve

# re: How do you decide what features to add or cut?

Do ORMappers have a place in a closed shop's ASP.NET application running strictly MS SQL server?

Friday, January 07, 2005 6:34 PM by Travis

# re: How do you decide what features to add or cut?

Do you want to cut your development and maintenance time by a significant amount? Do your users expect a lot of flexibility?

See my posts at:
http://weblogs.asp.net/pwilson/archive/2004/09/05/225827.aspx
http://weblogs.asp.net/pwilson/archive/2004/09/18/231188.aspx
http://weblogs.asp.net/pwilson/archive/2004/09/29/235834.aspx

Friday, January 07, 2005 6:43 PM by Paul Wilson

# re: How do you decide what features to add or cut?

Friday, January 07, 2005 6:43 PM by TrackBack

# re: WilsonORMapper v3.1 Released One Year Exactly After v1.0

Ah, you made my day by fixing the exception handling! That was a big pain when debuging. :)

Friday, January 07, 2005 6:52 PM by Paul Welter

# Paul Wilson's O/R Mapper V3.1 Released

Saturday, January 08, 2005 12:03 AM by TrackBack

# re: WilsonORMapper v3.1 Released One Year Exactly After v1.0

I'm new to your mapper...

"Better Exception Handling, No longer Catching and Eating Exceptions"

The fact that you were ever eating exceptions makes me a little scared to use this in my applications... and to fix it in v3.1 makes me even more worried. I would put that into "bug fixes" rather than "improvements".

Saturday, January 08, 2005 4:17 AM by AJ

# re: How do you decide what features to add or cut?

Travis: of course! Unless you want to write all that code yourself ;)

" By the way, this is also the one of the few things that I think still makes my mapper stand out as unique against the likes of NHibernate, LLBLGen Pro, and EntityBroker. The others may have more features, and NHibernate is open source, but just try to use any of these others for the first time in 30 minutes, or just try to extend any of those to have a new feature you desire. "
If you think your mapper is easier to use than mine you're clearly mistaken. For example, LLBLGen Pro doesn't require you to write mapping files, the generated code is ready to use and sports all the functionality you want, so you don't need to jump through hoops.

Furthermore, I add new features every 2 months, you do too? LLBLGen Pro has a template system in place with multiple template languages and a task-based code generator which is more flexible than anyone of the competition. You can extend the code generator to extend the code you're going to work with with easy classes or templates. You want a unique filter element to work with the predicates used to filter on objects? Inherit from a base class and add 20 lines of code and you can use your own filter element in your code. For example full text search on MySql.

"Of course the other main thing mine has to offer is provider support -- I don't think any other can claim to support so many databases. And that's not just a claim -- its also a reality that many have proven -- a reality that is possible primarily due to simplicity and not targetting every possible feature."
How many databases do you really support, Paul? I mean SQL-92 inserts with no real functionality besides simple inserts... that's not that hard. Do you support sequences on oracle, sequences + identity on DB2, sequences on firebird? Do you support delete from from / update table from table on oracle/db2/mysql/firebird/access ? Can you do multiple joins of the same table with aliasses and filters targeting those alaisses (SQL 101) on oracle 8i AND for example sqlserver/db2 ? (so you have to implement ansi and non-ansi joins? ) Do you support aggregates, group by, having clauses on 'all these databases' ?

You support just the very very simple stuff, of course you can then support a lot of databases. The non-ansi joins on oracle 8i alone break any generic db driver code. Support a lot of databases with REAL functionality requires some more code than a set of simple rules in a provider definition, Paul and you know that. The fact alone that you don't support 1:1 relations proves the fact that the code base is very simple. You don't deny that, but at the same time you praise yourself with phrases like that you support the largest amount of databases. I think it then depends on what your definition of 'support' really is.

Btw, we too use a provider model, both for the schema driver and for the DQE engine, and so does NHibernate.

Saturday, January 08, 2005 6:54 AM by Frans Bouma

# re: WilsonORMapper v3.1 Released One Year Exactly After v1.0

AJ: Its hard to disagree with that in general, but there was one exceptional case. Basically, people often have object A related 1-n to object B and object B related n-1 to object A. For the default lazy-loading scenario this works fine, but when someone turns off lazy-loading then this was a scenario where an infinite set of relations could become a huge problem! Since my mapper does not require a base class, its not easy to deal with some situations like that, so I found a way to cause an exception -- and I ate it on purpose since that was my intent. Unfortunately there was opportunity for other exceptions to get ate in the process. Anyhow, this is now fixed (not an easy thing to do), but while it was less than idea before, it was there for a reason and didn't exactly make the mapper unstable as you are maybe suspecting -- it was very stable.

Saturday, January 08, 2005 8:27 AM by Paul Wilson

# The Best O/R Mappers: NHibernate, LLBLGen Pro, and EntityBroker

Saturday, January 08, 2005 9:55 AM by TrackBack

# re: How do you decide what features to add or cut?

Saturday, January 08, 2005 9:56 AM by Paul Wilson

# re: How do you decide what features to add or cut?

Saturday, January 08, 2005 9:56 AM by TrackBack

# re: The Best O/R Mappers: NHibernate, LLBLGen Pro, and EntityBroker

What are your thoughts on Gentle.NET?

Saturday, January 08, 2005 12:32 PM by AJ

# re: The Best O/R Mappers: NHibernate, LLBLGen Pro, and EntityBroker

Hi Paul,

Last time I used an OR mapper for a .NET project was in early 2002 when I ported the IBuySpy Portal to ObjectSpaces using the early beta framework.

You should be able to find that still on GotDotNet (under my name David Taylor or DavTaylor).

Personally, I am happy to wait for the final release of ObjectSpaces / WinFS.

.....you have probably already guessed that I am a very patient man (currently I am assuming a 2007-2008 deliverable).

Saturday, January 08, 2005 1:06 PM by David Taylor

# re: The Best O/R Mappers: NHibernate, LLBLGen Pro, and EntityBroker

AJ: Gentle.NET seems good enough, but its too little too late compared with NHibernate. NHibernate, being a port of Java's Hibernate, has more than enough features and documentation, and it also already has a large user base and good stability (maybe great). I probably wouldn't even try to make my own mapper today if I was just starting out, but I started 18 months ago before NHibernate was around. Of course, since mine does exist I am glad -- since I do believe there is a market for simplicity.

Saturday, January 08, 2005 2:16 PM by Paul Wilson

# re: The Best O/R Mappers: NHibernate, LLBLGen Pro, and EntityBroker

David: Not only will you have a long wait, but I think the other mappers on the market have proved that MS OS will never be the best!

Saturday, January 08, 2005 2:21 PM by Paul Wilson

# re: The Best O/R Mappers: NHibernate, LLBLGen Pro, and EntityBroker

Wooh, was he really that upset?

I use LLBLGEN, and I have to say I'm definitely a happy customer. It probably took me more than 30 minutes to figure it out initially, though, because I ultimately chose the self-servicing templates with base entities, which isn't the default.

As for NHibernate ... I just find it more natural to start with the DB, to go R->O in other words rather than O->R. O->R mappers like nhibernate and wilsonormapper also require you to define your database twice (once in the db and once in the config), thereby breaking the DRY principle.

With LLBLGEN's cmdline generator, I might even be able to just vaguely point at the database and say "uh, do that database over there and stick the code here" ... and get a full model with just those two config variables! That, combined with a magic assembly re-compiler, would be even better than Ruby on Rails, whose ActiveRecord is really, really simple, but still requires you to declare the tables and relationships.

David: I've only been using .NET for 6 months, and maybe I got spoiled by the scripting world, but I've ended up junking layer after layer of MS-written frameworks. Now asp.net is gone for me, and I reimplemented it in 5 days and 500 LOC without all the negative baggage. Do you really think given their history that objectspaces is going to get even close to the hype?

Saturday, January 08, 2005 5:25 PM by Steve

# re: The Best O/R Mappers: NHibernate, LLBLGen Pro, and EntityBroker

Steve (and Paul),

I was partly being sarcastic with my prior response, I mean....realistically who can now wait until 2007 or 2008 for any project you are planning right now?

When I first worked with ObjectSpaces in 2002 (using a beta they released in late 2001) I had assumed it would come with .NET 1.1 in early 2003 (but of course it did not).

I think you are being a little hard on Microsoft. I would much rather have nothing now from Microsoft, and use one of the great products available (from Paul, NHibernate, etc) and let Microsoft plan a coherent strategy. The worst case scenario would be for Microsoft to have 2-3 O-R mapping frameworks, and given WinFS is being worked on, it was the right decision to delay ObjectSpaces and try to merge or align the technologies.

Can I also give you some advice regarding .NET? This is particularly important if you have come from another background (ie PHP, Java, etc).

Programming has been one of the biggest parts of my life since around 1981 and.....over the last 20+ years..... the ASP.NET framework (particularly what is coming with Whidbey) is one of the best frameworks I have ever worked with. Whidbey just fills in lots of areas that were missing from the V1 release.

It is just that any framework will seem "wrong" to you if you have never used a framework with similar concepts before.... You need to reset your way of thinking before things start to make sense.

Sunday, January 09, 2005 12:00 AM by David Taylor

# re: Unusual Chinese Fortune Cookie

Maybe he's going to be an NFL place kicker? :-)

Terri

Sunday, January 09, 2005 12:44 AM by Terri Morton

# re: SQL Server 2005 and Limitations to Assembly Loading

That is correct. You cannot manually create an assembly in SQL Server 2005 when logged in with a SQL-only account. This is because these objects need to be secured, and SQL 2005 also allows you to lock down who (or what roles) can create or modify these objects.

I wrote an article for VSM that you might be interested in:

http://www.ftponline.com/vsm/2004_12/magazine/columns/databasedesign/

Sunday, January 09, 2005 11:41 AM by IlluminatiLord

# re: Binding to a custom App.Config file

Monday, January 10, 2005 7:42 AM by TrackBack

# UI Mappers Making News -- OR Mappers Are Common

Monday, January 10, 2005 12:23 PM by TrackBack

# re: UI Mappers Making News -- OR Mappers Are Common

I think it's a great concept. I've tried for it off and on the last year, with varying degrees of success.

I was wondering ... have you looked at Ruby on Rails? It takes a R->O (db schema generating class hierarchy) approach, which I guess isn't as OO-pure, but it's really fast and automatic. ActiveRecord generates the data layer at runtime, and the "scaffolding" portion of ActionPack uses the data layer to automatically generate a CRUD interface for the tables.

It seems to be really successful ... enough that I'm looking to emulate it in dotnet. I was wondering what your thoughts were on it, though, since as I mentioned a few days ago, WilsonORMapper seems to take a somewhat different approach of having config files listing tables and fields.

Monday, January 10, 2005 4:07 PM by Steve

# re: UI Mappers Making News -- OR Mappers Are Common

I am very, very curious on how you've solved the flexibility issue as I see many solutions all claiming the flex. But eventually you have a bunch of code you cannot really get through. Looking forward to your public beta :-)

Monday, January 10, 2005 5:30 PM by Michael Hensen

# re: UI Mappers Making News -- OR Mappers Are Common

Steve: I haven't seen Ruby on Rails -- I only heard of it for the first time the other day actually.

Michael: I think my final version will be decently flexible, allowing people to build on my basic platform to better fit their needs. But its also true that it won't be as flexible as doing everything yourself -- but the point is that a UI Mapper should enable you to avoid the same old boring UI code, while enforcing more consistency than any other approach, which should suffice for at least most "admin" type screens, if not more -- you can always do the other screens one-off if necessary.

Tuesday, January 11, 2005 9:45 PM by Paul Wilson

# O/R Mapping (Object/Relational Mapping)

Thursday, January 13, 2005 11:25 AM by TrackBack

# re: Unusual Chinese Fortune Cookie

Lucky him

Friday, January 14, 2005 1:42 PM by DLG

# re: UI Mappers Making News -- OR Mappers Are Common

Hi, just wanted to point out that my project is not a object->ui mapper , its an object->object mapper which Mats Helander misunderstood in his blogpost.

Also, the link on my name points to some company ive never heard of... unless there is another Roger Johansson there also doing a mapping project :P

Sunday, January 16, 2005 3:57 PM by Roger Johansson

# Bug Fix: WilsonORMapper v3.1.0.1

Monday, January 17, 2005 7:35 PM by TrackBack

# re: Bug Fix: WilsonORMapper v3.1.0.1

As long as we're on the subject of bugs, I've dealt with one since Transactions were added.

"Message: This SqlTransaction has completed; it is no longer usable.
Source: System.Data
Stack Trace: at System.Data.SqlClient.SqlTransaction.Rollback()
at Wilson.ORMapper.Transaction.Rollback()
at Wilson.ORMapper.ObjectSpace.PersistChanges(ICollection entityObjects, PersistDepth persistDepth)
at Wilson.ORMapper.ObjectSpace.PersistChanges(Object entityObject)"

It actually seems to be out of scope, and since I'm try/catching the service using it, and reinstantiating it every 60 seconds it's never been a showstopper for me, but it is annoying to get 10 emails in the morning from my exception logger. :)

I tried to look at the code a bit when I first started getting this (after upgrading to v3 I think), but didn't understand the intent of the deconstructor for Transaction, so I gave up after a couple minutes.

Anyways, still a great mapper, it's certainly made my job easier, really looking forward to V4! :)

Monday, January 17, 2005 7:53 PM by Sam

# re: Bug Fix: WilsonORMapper v3.1.0.1

Hey Sam:

I still have not been able to reproduce this, and I didn't realize it was something you saw that frequently either. I'd love to get some code that I could reproduce it -- one other person mentioned getting this also, but that's all.

Thanks, Paul Wilson

Monday, January 17, 2005 8:11 PM by Paul Wilson

# re: MySql ADO.NET Provider Change

I'm sorry, but I can't find this info you're talking about on the mysql site. They acquired the library from ByteFX a number of months ago, and I can't see how things have changed since, according to http://solutions.mysql.com/software/?item=181. I've been using the old library and would like to see the new one, so any more information on this would be helpful. Thanks!

Eric

Monday, January 17, 2005 8:43 PM by Eric Sowell

# re: MySql ADO.NET Provider Change

Hi Eric:

You can find it here: http://dev.mysql.com/downloads/connector/net/1.0.html

It seems to be dated 12/12/2004, although I'm not sure how long its actually been available. You'll find the note on the syntax change in the docs of the MySqlCommand class. My understanding is that this new version will solve some pooling issues, but I can't claim to know anything experientially there.

Monday, January 17, 2005 9:13 PM by Paul Wilson

# re: Bug Fix: WilsonORMapper v3.1.0.1

I'll shoot you an email tomarrow if you'd like. Like I said, it's in a Windows Service that cycles every 60 seconds though, and I might get from 2 to 10 emails a day (though always atleast 2). So say 5 out of 1440 cycles throw this exception. And like I said, I haven't noticed it actually affecting the work (though I wouldn't notice if the work was still done on the next cycle).

I haven't reported it before I don't think, so no one should take this as major. You can't fix what you're not aware of after all. :)

Again, great product, the $50 has paid for itself many times over in what you've taught me. :)

Monday, January 17, 2005 9:55 PM by Sam

# UI Mappers Making News -- OR Mappers Are Common

Monday, January 17, 2005 10:03 PM by TrackBack

# re: UI Mappers Making News -- OR Mappers Are Common

Sorry Roger. The link and the content have been updated.

Monday, January 17, 2005 10:03 PM by Paul Wilson

# re: MySql ADO.NET Provider Change

Ah. Thanks. That is very helpful.

Monday, January 17, 2005 10:21 PM by Eric Sowell

# re: MySql ADO.NET Provider Change

The change happened in September to the best of my knowledge. If you watch the MySql forum on .NET connectors (http://forums.mysql.com/list.php?38), you can get feed back from Reggie Burnett, the creator of the ByteFX driver (to the best of my knowledge).

Warning - make sure you download version 1.0.3 as version 1.0.2 had pooling issues resulting in your website to crash typically once a day.

Monday, January 17, 2005 10:31 PM by David Dimmer

# re: UI Mappers Making News -- OR Mappers Are Common

Paul,

I am not sure what you mean by a UI mapper, but if that is simply a tool for mapping entities to screens. Then I wonder if you will just end up creating screens that are functional but unuseable.

To be useful I believe that you need to create a process model. So you can map from the data model to the process model and from the process model to the ui.

About a year ago I got seduced by the false promise of mapping the data model directly to the ui. After a while I realised the screens generated where basically un-usable. Unless you were a geek.

What do you think?

Tuesday, January 18, 2005 3:08 AM by Alex James

# re: MySql ADO.NET Provider Change

Just a FYI: The MySql .NET provider is GPL-ed. This means that if you compile YOUR code against that .NET provider, your code has to be GPL-ed as well. I'm not sure you do that Paul, but if you do, please be aware that their lawyers are very keen on this and it was the reason I opted for a commercial .NET provider for MySql (corelab)

Tuesday, January 18, 2005 3:38 AM by Frans Bouma

# re: UI Mappers Making News -- OR Mappers Are Common

Thanks for your thoughts Alex. I certainly don't think a tool like this will replace every screen, but I do believe that the vast majority of screens in most apps are very basic "admin" type screens -- perfect for a tool (whether it be code gen or a runtime meta-data "UI Mapper") to cut development and maintenance time, while also better enforcing consistency and adding far more flexibility than those basic screens typically have.

Tuesday, January 18, 2005 7:10 AM by Paul Wilson

# re: MySql ADO.NET Provider Change

Frans: Thanks for that info -- another reason why I do NOT compile my O/R mapper against ANY 3rd party providers! I simply allow my users to specify their own drivers, which nicely avoids those issues, while also letting users choose what works best for them.

Tuesday, January 18, 2005 7:12 AM by Paul Wilson

# re: Personal Update -- Please Pardon My Inactivity

Paul, I really enjoy using your tools. For price and simplicity I am surely content with your mapping toolset. ...Work, busy work and material goals are temporary while faith, hope and love are eternal. As much as ORMapper vX.X etc has codies drooling clear your mind and help your wife through this difficult period with your focused time.

Tuesday, January 18, 2005 11:10 AM by seanh

# re: MySql ADO.NET Provider Change

Tuesday, January 18, 2005 1:23 PM by David Dimmer

# More mappings: Relational Model

Tuesday, January 18, 2005 1:55 PM by TrackBack

# More mappings: Relational Model - Domain Model - Presentation Model

Tuesday, January 18, 2005 1:56 PM by TrackBack

# re: UI Mappers Making News -- OR Mappers Are Common

Paul,

Yeah, I think you are right about Admin etc.
I tend to think that if you need 50 screens, 40 or so will probably be admin, so your tool will help a lot with 80% of the screens. Don't you think however that the other 20% are the screens people use most?

What I think is useful about your stuff is that it allows developers to focus on the VISIBLE code, which they can quite easily explain the costs of, as opposed to the less obvious ADMIN screens which are definitely required but are less likely to be understood by the client.

I wonder if the answer to that 20% of screens which are process oriented and more visible at the requirements gathering and budgeting phase (which are used 80% of the time) is to create a distinct new model to define the data requirements of processes. Because the most used screens are task/process oriented not data oriented, So once you have a processes model you can then do UI mapping to it.

Of course Admin screens are a good place to start, and can allow developers to forget about 80% of the screens that take 80% of the time. And focus on the 20% which are critical to the sucess of the project, so that has to be a good thing!

Good luck, look forward to seeing your UI mapper when you've finished!

Alex

Tuesday, January 18, 2005 3:08 PM by Alex James

# .NET SP1 broke my blogs :-(

Tuesday, January 18, 2005 4:33 PM by TrackBack

# re: I did not know SQL Server Views are Static

That's bitten me before, too.

Whenever I add column to a table that a view should now include, I just edit the view then save it, forcing it to recompile what columns are included in the "*".

But the question remains, what's up with that behavior? It's reasonable to say that for performance reasons it needs to compile the query (leaving it static). It's also reasonable to say that for a small percentage of the cases that it is too computationally expensive to cascade a change in a table all the way down to all compiled views. Just my guesses.

Tuesday, January 18, 2005 4:36 PM by Ryan Whitaker

# re: I did not know SQL Server Views are Static

Isn't this just an issue with enterprise manager?

Does the samething happen in Query Analyzer when altering a view?

Tuesday, January 18, 2005 4:58 PM by Patrik Löwendahl

# re: I did not know SQL Server Views are Static

Creating my view in Query Analyzer as "SELECT *" will still take a static snapshot of the fields, instead of using "SELECT *" as I intended. And the system tables will still reflect that I created my view as "SELECT *" -- which isn't really what I have once I add a new field. But if you mean that Enterprise Manager can lull you into thinking you've updated it when you press the OK button then you are correct.

Tuesday, January 18, 2005 5:08 PM by Paul Wilson

# re: I did not know SQL Server Views are Static

I've seen the same issue in SQL Server and Sybase. It affects stored procs as well - try adding a test column to a table, create a proc that references that column and then go back and delete it - the delete of the column doesn't complain that there are other "objects" referencing the column, but it will fail when you call it of course.

I don't know for sure, but it looks like it doesn't do any type of checks for referring objects... as for your issue I would think the view got compiled and it replaced your * with a real column list which I think would be more efficient and since it doesn't do any type of reference checks it didn't recompile the view. Only options are to not use select *'s or to always remember to look at the dependencies on a table and "recompile" as necessary... neither of which are as intuitive or as easy as a select *...

As a side note there is a similar issue if you refresh a table from say a production instance to a development instance (at least on Sybase) where it will appear to work and the table will be there with data, but none of the referring procs/views will be updated with the "new" table object so they'll all fail until you recompile them with no changes...

Tuesday, January 18, 2005 5:16 PM by Clayton Burt

# re: I did not know SQL Server Views are Static

It is so good to know I am not crazy (still sorry for your pain). This happened to me a couple of years back and I've never used a View since.

Tuesday, January 18, 2005 5:16 PM by Terri Morton

# re: I did not know SQL Server Views are Static

Cached execution plan?

"sp_recompile targetObject" will invalidate all execution plans referencing the target, and cause them to be rebuilt.

So "sp_recompile myModifiedTable" would rebuild (on the next execution) the plan for the View, any referencing Stored Procedures, and cached Queries.

I'm not positive it's a problem with the execution plan, but trying sp_recompile would verify that one way or the other.

Tuesday, January 18, 2005 5:20 PM by Sam

# re: The Latest Crap on Code-BePart in ASP.NET v2.0

I prefer the new way. You get precompiled pages, and you get rid of the double declarations for controls, which can be a mess when a page has a couple hundred controls on it.

I definitely think the change in Code-Beside showing the inheritance chain in the code is good though. It was a little confusing to me that the code classes didn't inherit from anything. A little bit too much magic. :)

Tuesday, January 18, 2005 5:24 PM by Sam

# re: The Latest Crap on Code-BePart in ASP.NET v2.0

Not quite sure i'm understanding your rant?

This is good for those who don't want others who have access to the servers to mess with their html source code, so i don't see what all the fuss is about.. it's not like it's mandatory :/

And this isn't anything new, they've been touting this pre-compilation feature since the announcement of 2.0.

Also, shouldn't this make deployments for large webs considerably faster and easier since everything is already precompiled and pages don't need to be compiled when they're first accessed?

Then again.. i might be misunderstanding your post :|

Tuesday, January 18, 2005 5:26 PM by Stebet

# re: The Latest Crap on Code-BePart in ASP.NET v2.0

Stebet: Yes, you've misunderstood my rant. My rant is NOT about pre-compilation, which is a good thing in many cases. My rant is about the latest version of code-bewhat -- which appears to be getting just downright screwy. My side rant was that they took away one type of compilation, that of code-behind, in the new model -- and while I agree many will benefit from pre-compilation, many also benefit from the existing compilation of only code-behind. I'm saying that should have left code-behind alone and simply added pre-compilation as another option. Those that don't want the OO nature of code-behind would be served well by the new features in VS (intellisense and code view) for the single page model.

Tuesday, January 18, 2005 5:31 PM by Paul Wilson

# re: I did not know SQL Server Views are Static

Sam's post reminded me - if you don't need it to cache the execution plan, you can include "WITH RECOMPILE" in your proc and it will recompile it each time... should make it handle the table changing...

Tuesday, January 18, 2005 5:56 PM by Clayton Burt

# RE: I did not know SQL Server Views are Static

When you save a view, I believe it adds entries to syscolumns for the fields at the time of view compilation. Like a stored procedure, it also stores the text version of the script that actually created the view in the syscomments table. sp_recompile will cause all cached execution plans to be dumped, and stored procedures will get recompiled on next use, but I am not sure if views get cached in this manner also.. as they really do not contain a set execution plan (different SARGs and joins on a view will produce differring plans). I have also seen cases of sp_recompile not being able to really locate all dependencies. There are some situations where it just cannot do so.

I am pretty sure its just the metadata for the view being saved at compile time that causes this behavior. It would be horribly inefficient if the server had to recompile the metadata every time a view is referenced just to see if any fields were added (the idea behind a view is that it is static enough of a query component that you can store it server-side and use a synonym for the underlying complexity - it's not supposed to change).

P.S. It's just not good habit to use "select *" in any permanent SQL. I weaned myself off of that years ago, and rarely even use it when doing ad-hoc queries in QA.

Tuesday, January 18, 2005 6:03 PM by keith@mindfusioncorp.com (Keith Rome)

# re: The Latest Crap on Code-BePart in ASP.NET v2.0

Uhmm... that's exactly what they did according to the article you linked isn't it? Use src= instead of CodeFile= and you get CodeBehind?

Tuesday, January 18, 2005 6:11 PM by Sam

# re: The Latest Crap on Code-BePart in ASP.NET v2.0

Hi Paul,

Dont stress, they have not taken anything away. You now have the option of:
a) Fully pre-compiling the site.
b) Dynamically compiling everything at runtime.
c) The old code-behind model (Fritz is incorrect this is not supported), just improved a little.

Here is the post I just made on Fritz blog:
>There is one claim I have seen made that this model also enables the pre-compilation of the code behind classes....(cut).

But it does allow this Fritz. This is because your code-behind and original .ASPX file (both partial classes) will be compiled together into a single pre-compiled class. This class then becomes your page's bass class and at runtime your ASPX page will inherit from this base class.

Then at runtime you can edit your ASPX file, (like you can in 1.x) and it will simply cause a recompile (again inheriting from your original base class).

You are probably just confused because you figure "but what if I add a few extra controls to my ASPX file after the base class has been pre-compiled? They will not be added to the base class!". That is perfectly correct, but not a problem, because your base class never reference those new controls anyway.

In fact this is exactly the same situation as we have today in V1.x with codebehind if you add a new control to your ASPX file using nodepad after the code behind was pre-compiled by Visual Studio.

This is actually quite simple, and I think people are just confused because the ASP.NET team changed the way this is done mid-way through the beta process. But the end result will be quite elegant.

There is current a lot of misunderstanding about the most recent changed because they are only available in the November CTP. Bring on Beta 2.....

David Taylor

Tuesday, January 18, 2005 6:29 PM by David Taylor

# re: The Latest Crap on Code-BePart in ASP.NET v2.0

I am not up on all the changes to the code-behind, but I can see the partial page classes being really useful for having code-generated and customized portions of the pages in separate source files. I think we will see some cool code generation tools coming down the pipe that will exploit this feature, allowing us to be more productive and causing less of a chance to step on generated code.

Tuesday, January 18, 2005 6:35 PM by David Hayden

# re: The Latest Crap on Code-BePart in ASP.NET v2.0

I should clarify one last possible point of confusion:

Fritz was probably thinking that it would be impossible to pre-compile your base page partial class, because it needs to be merged with a partial class with control definitions generated from your ASPX file; And this is completely correct...you DO need that ASPX file to be defined first in order to pre-compile your base class.

But the point here is that whilst you do need an ASPX file containing the control definitions in order to pre-compile your base page class; at any time after this, you can edit the ASPX file like you can today in V1.x and it will be recompiled on the fly inheriting from your pre-compiled base class.

The main question is "Is it better the controls are defined in the .cs file imperatively , or the ASPX file declaratively". Hopefully everyone agrees the latter is better.

And guess what? If you disagree, and just want to define the entire base-class in code without needing an ASPX file to compile against (partially) - you can just do that by writing the class in exactly the same way as you would in V1.x. Just forget all this partial stuff and write an entire base class that inherits from Page.

I hope we can get some agreement that this is "all good" and that Paul can edit his blog entry and remove the word "crap" ;-)

Regards,

David Taylor



Tuesday, January 18, 2005 6:49 PM by David Taylor

# re: The Latest Crap on Code-BePart in ASP.NET v2.0

Almost, but not quite, src is the same thing as it is in v1.1 -- which is code-behind that isn't compiled. That's certainly not what I want, nor is it really supported by VS today or in 2005.

Tuesday, January 18, 2005 7:26 PM by Paul Wilson

# re: The Latest Crap on Code-BePart in ASP.NET v2.0

I agree that partial classes are going to be very useful in code-gen scenarios, so I'm not trying to moan about partial classes. I'm just very dissatisfied with the use of partial classes in ASP.NET for code-whatever-we're-calling-it.

Code-behind in v1.* works! And its very easy for anyone coming from an OO background to understand. It doesn't hide any magic from you -- it just works. Granted, it may have some issues for those tasked with building the VS designer, but designers are always difficult.

As far as I'm concerned, all the changes from code-behind are being made either to (1) make the designer easier to build or to (2) make things simpler for non-OO web developers by hiding things from them. The original code-beside model in the previews didn't hide too much, since it was a pure partial class implementation, although it also was not going to be easy for anyone working without a cool tool like VS, unlike the standard code-behind of today. But this new model is just introducing too much trickery that requires a tool or a compiler to make sense of it all -- not at all simple unless you only work in VS. True, I can do pure page inheritance and avoid this, but now you're telling me that I can't use the tool to help me -- and yet I can today -- so this is a huge step back for OO web developers.

Let's stop and think about what we're saying. We're saying that protected declarations in an abstract base class are too confusing! And I agree they are to far too many web developers -- but those are the developers that should be using a single page model anyhow! Corporate developers, as opposed to hobbiests, are the ones who should be using code-behind -- and they had better learn OO in .NET and not have us start hiding things from them and having everything magically work at either compilation time or runtime! So what I want to know is if you don't like code-behind in v1.* today, then why don't you just use the single page model? You can precompile that too, so I really don't see why precompilation keeps being the rationale for a lot of this crap. And I do not intend to remove my description of this as crap -- it was crap when it was first shown to me, it was crap when I first showed it to my team of OO developers (and I was trying to defend it then since I decided to go along with the crap), and its crap now.

Tuesday, January 18, 2005 7:50 PM by Paul Wilson

# re: The Latest Crap on Code-BePart in ASP.NET v2.0

I agree with you Paul, src= is not an option for me. I do not deploy or distribute the .cs files with my web applications.

So looking at the only remaining option which is CodeFile=, what exactly does that mean for me, when up till now I deployed my .aspx files and my precompiled dll's in the /bin folder. I still don't think I have gotten my head completely around it.

Tuesday, January 18, 2005 8:30 PM by Brian Scott

# re: I did not know SQL Server Views are Static

Yeah, I've found that the SQL behind a view needs to be recompiled. You can do this in Query Analyzer by choosing to alter the view in the object browser and execute it. This is much better than dropping and re-creating a view as you don't lose the permissions associated with it.

Tuesday, January 18, 2005 10:39 PM by MartinJ

# re: I did not know SQL Server Views are Static

I have a better one: try doing this: Add a field IN FRONT of existing fields, and pick a totally different data type.

Any of the views that use SELECT * FROM [Table] exhibit the odd behavior of returning the original column's data transposed into the new column's data.

Wednesday, January 19, 2005 1:26 AM by Eric Newton

# RE: I did not know SQL Server Views are Static

Views are created, well, when they are created. Specifying all fields (*) results all fields at creation time.

Wednesday, January 19, 2005 4:30 AM by miha at rthand com (Miha Markic [MVP C#])

# More on code behind in .Net 2.0 Beta2

Wednesday, January 19, 2005 7:53 AM by TrackBack

# re: I did not know SQL Server Views are Static

You might try compiling the View with SCHEMABINDING. This will at least remind you what views need to be recompiled when you change the schema of the underlying tables.

Wednesday, January 19, 2005 12:50 PM by Mithrandir

# re: The Best O/R Mappers: NHibernate, LLBLGen Pro, and EntityBroker

I have to agree with your estimate of the difficulty of figuring out LLBLGen Pro the first time. I've installed the demo twice. Most recently, I generated some code from some simple tables and then used NDoc to create documentation for my code, which I then started reading and trying to figure out how to perform data access. After more than 30 minutes, I still had not had data access. Is this my fault for not looking for examples or LLBLGen documentation? Or should I have been able to figure it out on my own? I don't really think there'e a right answer to these questions.

I've written my own data access generation templates with CodeSmith. The entire development team where I work uses my templates because it saves them a ton of time and they are very easy to understand and extend. We aren't elite coders for the most part. Only 20% of us even have CS degrees. But we're good at what we do (making web sites) and these simple templates are good enough most of the time. So I agree with what you said, that sometimes a simple O/R mapper is better than a monstrously complicated one.

Wednesday, January 19, 2005 1:17 PM by Todd Moon

# re: SQL Server 2005 assemblies, what's about hosting ?

Wednesday, January 19, 2005 1:30 PM by TrackBack

# re: The Latest Crap on Code-BePart in ASP.NET v2.0

Paul,

I just think you are being way harsh. I mean you seem to be suggesting the new model will only be easy when using a tool like VS. This thinking is just backwards. I think the opposite is true and people could only use the V1.x codebehind model when they use a tool like VS than manages both the ASPX and control declarations at the same time and keep them in sync.

The whole point of this change is so people can use simple tools like vi/notepad and use the code separation model.

You seem to be defending the V1.x codebehind model which was always ugly and broken. It was just problematic to define your controls both in the ASPX file and also in your page....Then if you renamed your control in you .cs file but forgot too in your ASPX file, guess what?
a) Your code would compile perfectly.
b) Your code would run perfectly, but you would end up having a second control with the original name that was not "correctly hooked up" to your code.

This is all wacky and wrong...and quite rightly identified by the ASP.NET team at 'brittle'.

David Taylor

Thursday, January 20, 2005 2:51 AM by David Taylor

# re: The Latest Crap on Code-BePart in ASP.NET v2.0

Hi Paul,

Actually, I forgot to mention that it is way more than that...... Both models in V1.x (single-page or code-behind) you never really knew if your application would compile until runtime. In fact you would have to 'hit' every page in your application at runtime to find out if you had any errors in your ASPX page because the ASPX page was only compiled at runtime when the page is first hit.

So not only have they simplified the model with V2.0, but they now fully support compiling your .cs page (partial class) against your .ASPX (partial class) and thus immediately find errors in control declarations, etc.

But more importantly, they compile your 'entire site' when you hit the 'build' button. Thus Visual Studio 2005 will, for the first time, compile everything you have and tell you at 'build time' instead of 'runtime' if there are any errors in your code.

This makes me want to jump with joy! Because we are getting all the benefits of strong static typing, with an environment that feels like everything is dynamic.

:-)

Dont worry....Be Happy... (I will sing for you Paul).

David Taylor

Thursday, January 20, 2005 3:00 AM by David Taylor

# re: I did not know SQL Server Views are Static

When I change the underlying tables I use the "sp_refreshview" system sproc.

Thursday, January 20, 2005 3:47 AM by Deyan Petrov

# re: The Latest Crap on Code-BePart in ASP.NET v2.0

I do agree that adding the pre-compile/build option was a good thing, but I think that could have been done with the old model too.

And while I do agree code-behind in v1.* is "brittle", it certainly is not "ugly and broken". Its pure OO -- that may be "ugly" to many -- but to many of us its not at all ugly. And "broken" -- I'm not at all aware of any thing in code-behind that is broken.

So yes, they are right to make some tweaks, and a pre-compile/build option is very much appreciated -- but that doesn't justify all the hurdles and magic of the new system -- nor the loss of the current deployment model.

Thursday, January 20, 2005 8:05 AM by Paul Wilson

# re: I did not know SQL Server Views are Static

What's up with developers using SELECT *? Do you guys have lazy habits in the language that you code in? Why do it in T-SQL? SELECT * is a performance hit. Regardless of how minimal it is, it still is a hit.

Thursday, January 20, 2005 2:56 PM by Matthew

# re: I did not know SQL Server Views are Static

Good question Matthew -- I don't usually do this, and certainly my mapper never does this, but it seemed like a simple and quick thing to do at the time, and I knew the underlying table would very likely change so it seemed "safer" to use SELECT * since I thought that would automatically work in the future too. Oh well, you're right, there's apparently no excuse for laziness! :)

Thursday, January 20, 2005 3:30 PM by Paul Wilson

# re: The Best O/R Mappers: NHibernate, LLBLGen Pro, and EntityBroker

Tod: I just started looking at o/r mappers. It sounded cool, but it was/is very new to me. I searched a bit and found Wilson's, LLBLGen Pro and EntityBroker. I installed Wilson's: looked v. simple and reading a bit I found that I was looking for more functionality. Installed LLBLGen and generated some code in like 10 min. I didn't really understand the code just by looking at it so I installed EntityBroker. It installed but didn't work (crashed on db connection - some bug). In addition Thomas acts like he knows everything the rest should live to admire him - not to nice working with people like that on the long run. I droped EntityBroker but I didn't want to give up on o/r mappers yet so I went back to LLBLGen and opened the help - yeh, I know :). After max an hour I understood the generated code and realized that LLBLGen pro is great ...

Thursday, January 20, 2005 4:45 PM by Joe

# re: The Latest Crap on Code-BePart in ASP.NET v2.0

Paul,

>> nor the loss of the current deployment model.

See my other comments above; you can still use the current deployment model.

Maybe what you are missing is that there is a new command line compiler supplied specifically for ASP.NET (in that it understands how to generate a partial class from your ASPX page and precompile it against your partial .cs class).

This new command line compiler is not a "special thing in Visual Studio". It will be a standard part of the SDK.

It is with this compiler you can do the precompilation and end up with the current model of deploying a DLL, but still leaving the ASPX page in the server for editing like some people wanted.

Does that help?

David


Thursday, January 20, 2005 5:17 PM by David Taylor

# re: The Latest Crap on Code-BePart in ASP.NET v2.0

You may be right that the existing model is there, but Fritz also didn't seem to agree with you there -- but maybe. But I still believe there is simply no need for all this crap when what we have was working perfectly OO, and since we have improved single page support now too. It just feels like you are defending the ASP.NET team's decision instead of looking at the bigger picture and calling it what it is -- and I did that for a while myself so I can relate. Its so easy to get caught up in defending our baby when we're MS ASP.NET devs, but we also have a responsibility to be honest. That was exactly the issue when they first showed this to me and the other dozen people at the first private preview -- we all thought it a bad idea and they "convinced" us that it was a good thing since it was a "brittle" model and too "hard" for newbies. But there's something seriously wrong when the ASP.NET team has to "convince" the very experts they invited !

Thursday, January 20, 2005 5:30 PM by Paul Wilson

# re: I did not know SQL Server Views are Static

"SElect *" is jsut shorthand. A lookup is necessary to execute that statement to determine what columns are to be included. That's why it is a fraction slower to do an ad hoc query like that.

Like others have alluded to a view is compiled the first time and since nothing changed it didn't recompile.

Thursday, January 20, 2005 6:42 PM by Christian Duhard

# re: The Best O/R Mappers: NHibernate, LLBLGen Pro, and EntityBroker

AJ/PW: Gentle was actually quite useful even before NHibernate matured to a useable state. NHibernate has a nice query facility (an area where Gentle is somewhat lacking), but has improved on many other accounts. I'm probably biased :), but think it's one of the easiest frameworks to understand and get started with.

And with the MyGeneration template on top it really takes no time to create a simple but functional DAL - enough for a lot of people.

Friday, January 21, 2005 1:33 AM by Morten Mertner

# re: Setting up SSL correctly with IIS and ASP.NET

Look at my blog describing a little piece of art, it helped me out within 5 minutes with all my SSL issues:

http://www.netindustry.nl/blog/2005/01/setting-up-ssl-in-windows-2003-xp.html

http://www.codeproject.com/aspnet/WebPageSecurity_v2.asp

completely bypasses IIS problems, just disable it there.

Friday, January 21, 2005 6:27 AM by Wiebe Tijsma

# re: Setting up SSL correctly with IIS and ASP.NET

Well I never said that setting up SSL for auto-redirects was "hard" or that it would take more than 10 minutes -- just that there are some gotchas to watch out for. I still prefer doing it in IIS personally, instead of having to learn and include a 3rd party module, but its nice to see alternatives anyhow.

Friday, January 21, 2005 7:25 AM by Paul Wilson

# re: The Latest Crap on Code-BePart in ASP.NET v2.0

Paul,

I did convince Fritz. Anyway, load the November CTP onto a machine (do not try this with the December CTP which has an older framework). From a .NET command line prompt (or in the .NET 2 directory) type:

aspnet_compiler.exe /?

To completely precompile your app, removing all source (even ASPX source) do this:
aspnet_compiler.exe -v /MyApp -p c:\MyApp c:\Output

To do what I have been "trying" to explain use the -u option (for Updatable), as in:
aspnet_compiler.exe -u -v /MyApp -p c:\MyApp c:\Output

This will basically precompile your partial class against your ASPX file, leaving you with a precompiled DLL as per what you have with .NET 1.1, and leaving your ASPX page alone so it can be edited after deployment (as per the 1.x deployment model).

Obviously.....You need to use a new compiler, because the csc.exe compiler (and vb compiler) will not understand how to compile the ASPX into a partial class....

I hope that helps clear things up.

Note the compiler is a core part of .NET 2, not a special thing shipping with Visual Studio

David Taylor


Sunday, January 23, 2005 1:13 AM by David Taylor

# re: SQL Server 2005 and Limitations to Assembly Loading

Actually, after reading further, it will be possible for hosters to enable this, although its a different issue about whether or not they should or will. The solution is that you can assign a Windows credentials to a Sql login -- so a hoster would need to create a Windows user account with permissions limited correctly to that user's directories and then assign those credentials to the matching Sql login. That's certainly doable, but I still have to believe that most shared hosters will not offer this functionality -- but we'll see. And I'm also still not convinced there's enough reason to allow it when you consider that opening up this door could potentially open up some security holes or hurt performance (maybe not though).

Tuesday, January 25, 2005 9:02 AM by Paul Wilson

# re: Bug Fix: WilsonORMapper v3.1.0.1

Again, great product, the $50 has paid for itself many times over in what you've taught me.

Amen to that!

Tuesday, January 25, 2005 11:04 AM by Travis

# re: Improved CodeSmith Templates for ORMapper

My only complaint is that it does not map Views. I'm not sure what it is going to take to add that ability, but I'm working on it.

Monday, January 31, 2005 10:56 AM by Dustin B

# MySQL ADO.NET Provider Change

Found this on Paul Wilson's BLOG this week - http://weblogs.asp.net/pwilson/archive/2005/01/17/354781.aspx...

Tuesday, February 01, 2005 12:49 AM by TrackBack

# re: Improved CodeSmith Templates for ORMapper

Looks like its MySql compatible as well; great update!

Tuesday, February 01, 2005 11:23 PM by David Dimmer

# re: Improved CodeSmith Templates for ORMapper

[UPDATE]
He made an update so views can be mapped and generated.

Wednesday, February 02, 2005 8:53 AM by Nidifice

# re: Getting Ready for my UI Mapper Release

I've heard you mention the Beta... is this available for download anywhere? Would love to get my hands on it and provide feedback.

-Michael

Thursday, February 03, 2005 10:01 AM by Michael Ames

# re: Getting Ready for my UI Mapper Release

I did have a private beta that started back in July, and I've been taking the feedback I got from that, when I had time which has been a huge factor of course, but I'm now almost ready for the final release so there isn't anything I can give you until that time. But please take a look at today's blog entry and give me your thoughts -- that way I can make it what people want and finish it this month hopefully.

Thanks, Paul Wilson

Thursday, February 03, 2005 10:13 AM by Paul Wilson

# Comment to Paul Wilson's post

Thursday, February 03, 2005 10:43 AM by TrackBack

# re: Getting Ready for my UI Mapper Release

Paul, I started to leave a comment here, but it turned into a dissertation, so instead I put it on my blog: http://danhounshell.com/blog/archive/2005/02/03/314.aspx
Thanks,
Dan

Thursday, February 03, 2005 10:44 AM by Dan Hounshell

# Comment to Paul Wilson's post

Thursday, February 03, 2005 10:46 AM by TrackBack

# re: Getting Ready for my UI Mapper Release

Whoa. I definitely want to participate and give you some input, but it's going to take some time to process everything you've presented. You've thrown out a lot of questions and ideas here. Exciting stuff... let me chew on it a while and I'll get back to you.

Thursday, February 03, 2005 10:52 AM by David Neal

# re: Getting Ready for my UI Mapper Release

Did you obtain any professional help as far as graphics for your demo? I'd hate to try to get my boss to buy something when a demo only has "programmer" graphics.

Thursday, February 03, 2005 10:54 AM by DaveB

# re: Getting Ready for my UI Mapper Release

You'll be able to swap out graphics, as well as any text. Also, my web controls expose css styles while windows controls expose things like fonts and colors. Of course at some point you may want to modify the source for these controls to get your own look, but you'll still have the benefits that the general framework brings.

Thursday, February 03, 2005 11:10 AM by Paul Wilson

# re: UI Mappers Making News -- OR Mappers Are Common

Paul, I am looking forward to seeing what you have put together. I think the concept is great and that once we start palying with it more we will be able to run with it and perfect it.

Another person talking about UI Mappers is Johan Normen. http://www.nsquared2.net/johan/viewpost.aspx?PostID=117

Thursday, February 03, 2005 3:14 PM by Cory Isakson

# re: Getting Ready for my UI Mapper Release

Long ago I paid the $50 for a subscription to your suite of code. Your contribution to the community (open source) and your offerings are more than worth the $50. Initially I am not even sure you should release any of code for free. Demos of compiled source are good for people to get a feel for the tools, but those who will extend and build on top of them are most likely the paying folks anyhow.

You have my vote for a subset being open (as a learning tool), but the bulk of the source being for those who appreciate your efforts enough to send the $50.

Thursday, February 03, 2005 3:56 PM by Cory Isakson

# re: Getting Ready for my UI Mapper Release

I can't think of any examples that were open source for the framework and pay for an enhancement that ended up being big open source hits. Imagine if nunit(junit) offered the framework for free but the console/gui tools and some of the assertions cost $$$. Imagine log4net or .Text asking that some features cost extra. People who really needed it would pay for it gladly, just as I did with the Wilson O/R Mapper. However hobbyists and students, enthusiast level developers and folks who didn't _really_ need it would probably pass it by and its overall level of adoption and saturation would suffer.

It's a gamble for sure. I think you may be on top of something big here. Making it open source and putting it in sourceforge and getting other developers behind you could make Paul Wilson and UI Mapper very important but theres no guarantee that you would make a dime off of it. But asking a small fee for the extra goodies would be a sure way to get some level of reimbursment for your efforts.

You have my $50 or whatever it ends up being regardless of how you decide to distribute. I'm sure you wouldn't see nearly the response, but a full open source release and a Donate link might be just the right compromise.

Cheers,
Street

Friday, February 04, 2005 1:06 AM by Street

# re: Getting Ready for my UI Mapper Release

I suppose there should be a demo that's free to download and try out. I think someone needs to be able to plug it in to see how it works, but they don't need source.

I've built UI mapping tools in the past and have been thinking about doing something for .Net. Your UI Mapper might be a nice solution, so I look fwd to seeing a release.

Friday, February 04, 2005 11:09 AM by Chris Arndt

# re: Getting Ready for my UI Mapper Release

I think you've hit on one of the most difficult things to decide for a freelance developer, to Open Source or not. My opinion is that you should go all one way or the other. Release it all under open source or pay a subscription for all the code. I feel that just releasing the framework with out controls wouldn't allow one to completely understand things.

Conversely, a model that seems to work for DotNetNuke is to release the framework with a complete set of basic controls and then sell more advanced controls. That same model could work for you. Release the framework and a basic version of all the controls and sell more advanced ones.

Also, in my opinion, just releasing as open source doesn't mean it will become a standard or even be noticed. Your writing and publishing articles does way more to attract attention and get people thinking about a new concept then just releasing some code. Maybe you could just "publish" the framework. Do a series of article that explain UI Mapping and the interfaces and how they interact, complete with code examples. Keeping in mind that you’re not marketing but teaching. Then charge the $50 for the subscription for the full source code.

Those are my ideas, hope it helps
Paul Welter

Friday, February 04, 2005 1:02 PM by Paul Welter

# re: When Do You Recommend DNN and When Do You NOT

I would say that based on my use of DNN that:

1) there is a small learning curve to get past.
2) while I am not aware of any "Huge" sites I see stuff that indicates a *LOT* of use of it.
3) I see the "Key" to DNN as learning how to work the "Skins" that is where you use the CSS skills and the "Master Page" skills to bring up a site ...
4) there are some folks who can make some darn good skins for you, look at the DNN home site and follow the links.

how a DNN web looks is a function of the "skin"
think of the "SKin" as DNN's "Master Pages" and you can bend it to any layout.

One last thing:

when you have the skins and first set of pages then *EDITING* the content is something you can turn over to any decent writer....
thats a nice thing ... I have shown folks that they can edit the content and don't need me unless they run into a problem or want a chnage in the layout and Gfx.

also look at the work on DNN 3.0 it's looking sweet!

Friday, February 04, 2005 7:42 PM by denny

# re: When Do You Recommend DNN and When Do You NOT

I don't know what you're looking for as you seem to express some negative perceptions to DNN already. As for Master Pages, and the like, I don't know many clients that are going to want to develop a solution based on a beta product.

DNN has positives and negatives, and I would guess that many perceived negatives are due to lack of knowledge of the application. I run a rather large community site (WWWCoder.com) all based on DNN, I get over 5000 users per day, and it runs fine for me. I had to do very little modification of the application. Most of my mods were for performance, but the issues were not something unique to DNN (viewstate moving, compression, HTML formatting).

As for load balancing, in my day job I run a large corporate site load balanced across three servers running DNN. We have no issues. The reason you don't hear about larger corporate installs of DNN, is simply because most companies do not make the information readily available. As part of any infrastructure security plan you want to provide the least amount of information possible about what you're running. It isn't that DNN isn't being used in these situations, it simply is you don't know about it. I know many DNN implementations that you would have to be rather intimate with the application to release that the site was running DNN, due to some reworking.

As for modules, granted most cannot be used straight out of the box, but the great thing is that they usually come with source code. And there are some that are usually close to some functionality I want to do, now I can save many hours by just modifying the modules instead of writing from scratch. In addition, there is a huge offering of modules, over 300 both free and commercial, I don't think you'll find that writing some custom ASP.NET app.

On top of that, me as a corporate project manager, if I teach my developers how to write custom modules, I know they are using the same standard across the board. And any developer can easily pick up after another developer since they all use the same principles. With security, roles, administration, logging, batch job processing, SQL tools, skinning, and all the many tools that DNN provides I don't have to worry about it.

Then there is support, granted you can write a custom app, but what about when you're not there to support, or you want to advance on to higher prospects. If this is an app you wrote, then you're pretty much stuck supporting it. If this is DNN, then you have about 100,000 or more folks out there who are familiar with it. In addition, there now are people offering training programs, two books, forums, and many sites focused on DNN, providing you with more support resources. Imagine posting a Monster job, and saying one of the skills is supporting your custom app, then posting another for DNN module developers, at least the second description they'll know what you're talking about.

Friday, February 04, 2005 8:02 PM by Patrick Santry

# Paul Asks About DNN

Friday, February 04, 2005 8:05 PM by TrackBack

# Paul Asks About DNN

Friday, February 04, 2005 8:06 PM by TrackBack

# re: When Do You Recommend DNN and When Do You NOT

Wow Paul, is your enter key broken ?

Every time I look at DNN I get totally turned off by the OBSCENE amount of viewstate it creates. There is next to nothing posting back on the front page of a DNN, so why the 80k of viewstate.

I realize that broadband numbers are growing, but that doesn't mean the experience should suck for dial up users.

Friday, February 04, 2005 8:12 PM by Damian

# re: When Do You Recommend DNN and When Do You NOT

We've been using DNN v2.12/2.04 for about the last 8 months at my workplace, mainly because it allows us to get a basic site up and running very quickly. Out of the box, the user/role management and ability to add modules relatively simply is quite nice, however I do have a few problems with it:

- The default modules are very inadequate. Very few of our clients have been satisfied with any of them, so we've ended up re-writing or purchasing new modules on an as-needed basis.

- While it's a nice modular framework on which to build, there's absolutely no working Edit/Publish framework at all. This is a large hole, IMHO, and while you can implement this by creating or buying different modules, its still feels far from being integrated.

- Integrating with Active Directory is possible, but is a pain in the ass in v2. I believe v3 may have fixed this.

- Its an absolute nightmare trying to develop accessible, CSS/xhtml sites using DNN. There's code scattered throughout the codebase that will insert tables for no discernable reason, which can easily mess up your designer's pixel perfect layout. Over time, we've been able remove most of the offending markup, but in general the markup generated by DNN spawns from somewhere deep within the last century.

My feeling, and your situation may be different, is that DNN has helped us greatly only because it allows us to get a working framework for users/roles/modules up within days. This gives the client something to look at right away, which is essential for us. But if I had the time to create my own, simpler, custom framework I would do so. You won't regret it.

As for performance, it's definitely not fast, but we've setup installs for companies with over 1000 employees. I'm not sure on the actual stats regarding concurrent users are, but the sites seem to be running alright.

Hope that helps.

Friday, February 04, 2005 8:50 PM by Jeff Perrin

# re: When Do You Recommend DNN and When Do You NOT

Maybe I didn't make it clear enough, but my client is NOT wanting your typical DNN community site with announcements, events, document links, and similar "CMS/Portal" type features -- which seems to me to be the reason to use DNN. What I want to know is what does DNN give me if I am going to have to write all custom content anyhow, and by content I mean business logic and screens, not just static content. I do NOT mean to imply that DNN is not a solid product at all -- I just doubt that its of much value to serve as the basis of a custom business application, and I'm of course wondering about its scalability and performance since my client expects a very large multi-server site.

Friday, February 04, 2005 9:05 PM by Paul Wilson

# re: When Do You Recommend DNN and When Do You NOT

Personally, I feel that when you're going to have lots of custom content, DNN won't be of much help. The only area's where it could be benificial are exactly the area's that are already covered by your existing toolset (Masterpages, navigation, security).
Maybe you could leverage some of the built-in caching capabilities of DNN but I don't know how easy it will be to integrate that with highly customized modules.

Saturday, February 05, 2005 8:49 AM by Martijn Boland

# re: When Do You Recommend DNN and When Do You NOT

I'm mostly a DNN consultant / developer so its hard to not use DNN for everything, that would be like biting the hand feeding me so to speak. I think you'll get a lot of similar loyalty from most other DNN developers, the good ones should know better but many don't know anything else. What I'm trying to say is that DNN does not really give you anything special if you're not building a community or corporate portal. It will actually make things more difficult for an enterprise custom application since you'll end up modifying the few modules you can use while being more constrained in your entire architecture. There may be many DNN developers that you could advertise for when you're staffing, but you'll find that most are still not up to your standards just like you will find if you advertise for basic ASP.NET. Lastly, performance and scalability on large sites with DNN requires lots of tweaking so while it shouldn't scare you away its also not giving you anything better than your own custom code.

Saturday, February 05, 2005 9:23 AM by Joe

# re: When Do You Recommend DNN and When Do You NOT

Ditto Joe. Its great for what it is, but its not sliced bread. And the tweaking needed for large sites is not worth it; its both hard and time-consuming as well as limiting your upgrade path.

Saturday, February 05, 2005 10:54 AM by Anon

# re: When Do You Recommend DNN and When Do You NOT

I have just completed a short 2 month project using DNN. We had an average of 3 developers working on the project at any one time, primarily developing custom modules. We did not use any standard modules, although we purchased some 3rd party ones. The benefits for us were:
* no integration problems - developers could work on their modules with no special knowledge of how it would fit in the site, or integrate with other modules.
* portal-type functionality - the site is a community portal, aimed at multiple markets, each using their own skin variant
* user-editing - the CTO of the client can add pages to the site with relative ease.
* the minimize-maximize feature of individual containers was a plus for the client.

Downsides were:
* learning curve, about 3 weeks to get asp.net developers up to speed
* page sizes are a little larger than I would like

You can see the site at http://www.zcampus.com/campus/indiana/

Saturday, February 05, 2005 11:44 PM by Steven Campbell

# re: When Do You Recommend DNN and When Do You NOT

I have found that the concept of DNN modules is great, but for my commercial work, I like to unbundle them from the wrapper. For instance, I have a nice server control which wraps the FreeTextBox and makes a little database field include for my pages. I find that I can build a completely custom site for a customer, and just drop this module in where I need some user editable content... My clients cant handle re skinning their sites, so features like allowing them to upload new skins and completely change layouts would be total overkill, not to mention confusing them with too many options...

Dan

Saturday, February 05, 2005 11:50 PM by Dan Bartels

# re: When Do You Recommend DNN and When Do You NOT

I 'have' to agree with paul. I haven't yet build a site that can be fully rely on the modules of DNN. Therefor

I am much faster done building my own, then having to integrate them with DNN.

Even if it all would work. The client will hold me responsible for any faults in DNN.
This while most of it would be written by myself. It would take up quite some time to get a full understanding of the complete framework.

In building it 'all' myseld I can identify the probelems without having to see the actual code in front of me.

Still I haven't seen any site that can be build solemly by DNN modules, even with 'small' modifications.

So this is how I feel and this is why I agree with the statemnet Paul is making

Sunday, February 06, 2005 5:03 PM by Michael Hensen

# re: Getting Ready for my UI Mapper Release

Just remember Paul....

It's not illegal to earn a few bucks for all your work. 50$ is not the world and everyone (serious) should be able to spend this.

I really like open source, since I can see how people smarter (and sometimes dumber ;o) than me, have solved different problems. On the other hand you shouldn't just give away (alot of) hours of work.

I've never regretted paying the 50$ and when you look at other .net products (mostly without source code), it's almost theft at broad daylight ;o)

Looking forward to the product.

Thanks for everything...
Rasmus Lindgren

Monday, February 07, 2005 5:01 AM by Rasmus Lindgren

# re: The Best O/R Mappers: NHibernate, LLBLGen Pro, and EntityBroker

Just to update the dabases that your Wilson mapper supports....

I use your Wilson OR Mapper with your ado xml provider (ok, slightly modified... and... It's not really a database ;o)

Best regards
Rasmus Lindgren

Monday, February 07, 2005 5:27 AM by Rasmus Lindgren

# re: Getting Ready for my UI Mapper Release

I think you are on the right track here- its a razors and blades issues really.

An Open source engine will help to add community value and provide a solid base which others can build on- and your paid for controls are there to make peoples lives easier- or they can build their own/grab others open source ones.

Either way I am looking forward to seeing your efforts.

Ben

Monday, February 07, 2005 5:40 AM by Ben Williams

# re: When Do You Recommend DNN and When Do You NOT

I just started using DNN for a corporate "extranet" portal. It's essentially a place for the BOD of the company I work at to collaborate via discussions, manage contact lists, and documents, etc, etc. In this case, DNN was perfect because it allowed me to put something together mostly with cheap 3rd party controls. I've built 3 custom controls myself counting for no more than 8 hours of development time. If I was in your situation, where I would probably be rewriting everything that is an asset to using DNN anyway, I would go my own way.

Monday, February 07, 2005 8:01 AM by Chris Wallace

# re: When Do You Recommend DNN and When Do You NOT

I can not imagine DNN providing even the slightest benefit to my development. I can imagine it is wonderful for extranet b/c most company extranets are exactly the same...provide a login screen, provide access to some database info, display content and there are a few admins that control security and role based access. No software like DNN is going to help me unless I'm running something like a shopping cart site or a company extranet. If I was developing one of those I would certainly use DNN. The applications that I currently build are so niche market that the things I need it to do would require too much meddling in DDN that it isn't worth me time.

Monday, February 07, 2005 11:35 AM by Matt Knapp

# re: When Do You Recommend DNN and When Do You NOT

I looked at DNN, and found it to be targeted to personalized community websites with many users having accounts. What I needed was a web application framework. Using some great ideas that DNN made popular, I started creating my own web application framework. Each page is configurable for the title, template, theme, and plugin (or module in DNN-speak). The plugins can be any user control. This way, I have the shell of the site abstracted away with the default plugin being a plain content editor that saves away the html to a database. The basic for a CMS. Now, I create my custom screens all within a single user control that can be plugged into any page. I use a single user control as the entry point for the custom app, and it deterministically loads other user controls as it needs them (each user control is a screen or part of a screen). It works very well, and my site can host one or many web applications. In the future I may extend it with a portal plugin that could target a community site. Probably with the advent of .Net 2.0 we'll see several commercial application frameworks emerge.

Monday, February 07, 2005 11:46 AM by Jeffrey Palermo

# re: Getting Ready for my UI Mapper Release

Hey Paul,

I'd have to agree with what Paul Welter has suggested. If you want it to become widely adopted, release the source for the framework and basic controls. Sell more advanced controls - unless you're not really interested in control building. Could you think of a sensible way to release a cut down/limited version of the listview?

I think releasing it for free, and writing articles will get the widest adoption. If I got 1/10th as much use out of it as I do out of your O/R Mapper I'd happily donate another $50. However, wanting to move from a basic version to a more advanced version would probably make me realise that I've not got enough use out of it to hand you $50. :-)

Good luck either way.

Monday, February 07, 2005 2:54 PM by Tim Haines

# re: Improved CodeSmith Templates for ORMapper

First, I'd like to state nice update... There are a couple of tweaks id like to see...

First it would be very helpful, if the tables in the mapping.config were made in alphabetical order... if you have lots of tables it is hard to find the one your looking for...

Second, on the entity update, I was already doing something similar... I created a base class (ORMappedObject is what I called it) which I inherited which had most of this functionality... As almost all of these new methods are not typed, or can be typed generically that is; and this mod seems to generate alot of redundant code... Any chance we could see something like this worked into the template?

Dan

Monday, February 07, 2005 6:14 PM by Dan Bartels

# re: Improved CodeSmith Templates for ORMapper

I recommend that you make any comments in the thread at CodeSmith since I'm not really working on the these templates myself -- although I think they are great. I also think the point of the CodeSmith templates is of course a sample set of templates, since unlike my ORHelper you can alter the templates yourself.

Thanks, Paul Wilson

Monday, February 07, 2005 6:31 PM by Paul Wilson

# re: Getting Ready for my UI Mapper Release

From a user perspective, I enjoy open source applications released under non-restrictive licenses, such as the BSD or L-GPL licenses. But that's the selfish side of me speaking.

From a software author perspective, it's all about what will drive adoption of your solution. I can really see the open framework approach, but I don't think that selling advanced controls will drive sales (unless your framework becomes the new "Infragistics.")

Perhaps open source the whole thing, but require a paid license for commercial use. This means that it will be easy for people to experiment with your framework, but if they wish to use it in a "Production" application, they are required to pay.

At this price range, you have
1. People who would like to compensate you for your work.
2. People who will never pay a dime to you.

What you should provide is an easy way for "Corporate" customers to expense or be invoiced. This is also why "donation" buttons are of questionable value here - I (and many others) need to be able to take a price sheet to my boss and say "I need this. It costs $x".

Make it easy for people in Group 1. Group 2 may help drive adoption, but don't waste too many resources worrying about them.

Tuesday, February 08, 2005 7:39 PM by Jerry Dennany

# re: Atlanta Code Camp - Register Now

Is this really on a Saturday?

Wednesday, February 09, 2005 11:37 AM by Brenton House

# re: Atlanta Code Camp - Register Now

Yes, that's one of the goals of the new code camps -- to be developers for developers and not interfere with work.

Wednesday, February 09, 2005 11:38 AM by Paul Wilson

# Xml Data Provider

Thursday, February 10, 2005 6:22 PM by TrackBack

# re: When Do You Recommend DNN and When Do You NOT

I feel about the same as Jeremy on the 2.0 thing. One look at Carlos' Intranet sample using web parts @ http://www.carlosag.net/Articles/WebParts/intranetSample.aspx indicates (to me at least) the whole portal concept being changed/modified/upgraded.

Friday, February 11, 2005 7:55 AM by Chris Wallace

# re: Getting Ready for my UI Mapper Release

Hi Paul,
I think that if the price model you have used with the ORMapper has worked for you so far, you should do the same again. The product sounds useful and the $50 price is quite reasonable.

I'm not sure if 'open sourcing' the main tool will be of benefit or not. There are many open source tools out there and they can be instructive and useful. However, I believe in making money for my effort and I think you should too. As long as the price is reasonable, I do not think most developers will mind pitching in. I do not necessarily think an open source portion will drive sales of the rest. I also think you will lose some control if you open source it.

One of the things I like about the model you use for ORMapper is that I know who controls the direction of future development efforts and who to speak with regarding questions and suggestions. I like having the source because if for some reason you fall off the edge of the planet, I am not left high and dry. Most of my clients want the source for the work I do for them.

I think a solid, functional demo is important for a reaonable 'test drive'. If I could not have had a decent test of your ORMapper stuff, I probably would not have adopted it. However, the source code *is* important to me for adoption. The price you are contemplating makes it a no-brainer for me.

Anyway, bottom line, I like the way you have done things so far. I am looking forward to the product rollout.
Thanks,
-Dean

Friday, February 11, 2005 3:34 PM by Dean A Stelow

# re: Atlanta Code Camp - Register Now

I'd love to see you present something. I think my personal preference is to the O/R mapper over the UI mapper, but that's just me.

Sunday, February 13, 2005 11:29 AM by Matt Ranlett

# re: VS 2005 CTP and SQL 2005 Beta Together

Its not possible as they are using different versions of the framework and even you will succeed in some way installing it you wont be able to develop sql server store procedures using the december ctp.

Thursday, February 17, 2005 5:03 PM by Ohad Israeli

# Re: VS 2005 CTP and SQL 2005 Beta Together

Everything that I have heard or read states that you must run the build of VS from spring 2004 with SQL 2005. There is supposedly another beta coming through the pipe soon (March maybe?) that works either with the Dec VS 2005 CTP, or possibly a pair of new matched CTPs for both VS and SQL.

Thursday, February 17, 2005 8:21 PM by keith@mindfusioncorp.com (Keith Rome)

# re: VS 2005 CTP and SQL 2005 Beta Together

This is why Dec CTP doesn't support single-server install of Team Foundation Server.

Thursday, February 17, 2005 8:52 PM by Rob Caron

# re: VS 2005 CTP and SQL 2005 Beta Together

Not possible. We tried it here in our office and we 3 had separate frameworks on 1 PC. 1 for VS 2003, 1 for VS 2005 and 1 for Yukon.

Thursday, February 17, 2005 9:39 PM by Chris Ongsuco

# RE: VS 2005 CTP and SQL 2005 Beta Together

Out of curiosity, why don't you use VirtualPC or VMWare?

Friday, February 18, 2005 4:19 AM by miha at rthand com (Miha Markic [MVP C#])

# re: VS 2005 CTP and SQL 2005 Beta Together

I may yet use VPC for some aspects, but I view it more as occasional testing instead of serious work due to performance.

Friday, February 18, 2005 6:26 AM by Paul Wilson

# re: VS 2005 CTP and SQL 2005 Beta Together

This has been a real pane for presentations... I have not seen any good work arounds other than VPC or multiple machines

Saturday, February 19, 2005 2:27 AM by David Yack

# UI Generation

Monday, February 21, 2005 4:13 PM by TrackBack

# re: Viewstate chunking

Tuesday, February 22, 2005 11:42 AM by TrackBack

# Re: JavaScript Oddity in FireFox

Oh wow! I use location.href all over the place in my apps! Thanks for the tip.

Wednesday, February 23, 2005 4:14 PM by Jeffrey Palermo

# re: JavaScript Oddity in FireFox

kind of a strange scenario, isn't it?

Wednesday, February 23, 2005 10:17 PM by Ron Green

# re: WilsonUIMapper v1.0 Released

Hi Paul,

Congratulations on getting it out the door. I can't wait to give it a spin.

Tim.

Tuesday, March 01, 2005 2:27 AM by Tim Haines

# re: WilsonUIMapper v1.0 Released

I think you forgot to pack the documentation with the download, or is that downloadable from another URL?

Did you receive my reply on your email btw?

Tuesday, March 01, 2005 3:20 AM by Frans Bouma

# re: JavaScript Oddity in FireFox

I tried what you wrote, and it's working just fine (Both on IE and Mozila)..

Why don't you change your proffesion instead of saying Mozila is not working well ????

Hate Microsoft...
Hate people who say Mozila is lower then IE...


Tuesday, March 01, 2005 5:23 AM by Gal

# re: WilsonUIMapper v1.0 Released

Looking at the UIMapper right now and ... Wow.. This is some really powerfull stuff you've written.. I must say I am searching my way through code and functions, a small user document might be handy. But the first experience counts and that is ..GREAT STUFF..

Tuesday, March 01, 2005 5:39 AM by Michael Hensen

# re: JavaScript Oddity in FireFox

Hmmmm, I never said it was "lower" or not working -- I said there was an oddity. I use and recommend FireFox -- but I'm not a MS hater -- nor a MS drone.

Tuesday, March 01, 2005 6:35 AM by Paul Wilson

# re: WilsonUIMapper v1.0 Released

Documentation TBA. :)

Tuesday, March 01, 2005 6:37 AM by Paul Wilson

# RE: WilsonUIMapper v1.0 Released

Great job, Paul. Congratulationson the v1 release!

Tuesday, March 01, 2005 11:06 AM by mearls@hotmail.com (Michael Earls)

# WilsonUIMapper v1.0 Released

Tuesday, March 01, 2005 11:13 AM by TrackBack

# re: WilsonUIMapper v1.0 Released

Paul, congratulations for v1! I'm looking forword to check this out.

Tuesday, March 01, 2005 2:05 PM by Jens Winter

# WilsonUIMapper v1.0 Released - User Interface Mapper

Wednesday, March 02, 2005 8:00 PM by TrackBack

# WilsonUIMapper v1.0 Released - User Interface Mapper

Wednesday, March 02, 2005 8:04 PM by TrackBack

# WilsonUIMapper v1.0 Released - User Interface Mapper

Wednesday, March 02, 2005 8:04 PM by TrackBack

# re: Mats Helander has released ObjectMapper

One of the things I love about your attitude is that you don't hesitate to pay compliments to competitors products. It makes me feel like you offer a balance opinion. Thanks for this post on Mats work.

Wednesday, March 02, 2005 9:39 PM by Tim Haines

# RE: Mats Helander has released ObjectMapper

Perhaps renaming the WilsonORMapper could do wonders for its success. No offense, but I'm very hesitant to use anything that reminds me of Dennis the Menace. ;)

Wednesday, March 02, 2005 11:10 PM by mearls@hotmail.com (Michael Earls)

# re: VS 2005 CTP and SQL 2005 Beta Together

Why not try the CTP Feb versions of both products? It runs like a charm on 1 VPC.

Monday, March 07, 2005 1:44 PM by Pieter de Bruin

# RE: Not all MVPs are signing Petition about VB

Good call. Come on, guys, grow up and move on. People like old country dirt roads until a big rain comes and washes the road away. Pave your applications with .NET asphalt.

Wednesday, March 09, 2005 10:13 PM by mearls@hotmail.com (Michael Earls)

# Gimme a break....

Wednesday, March 09, 2005 10:27 PM by TrackBack

# Gimme a break....

Wednesday, March 09, 2005 11:17 PM by TrackBack

# re: Not all MVPs are signing Petition about VB

I've seen some appalling MVPs too (especially MVPs in Server software where the advice was just plain wrong). The fact that some MVPs are signing the petition shouldn't give it any more credibility. Unfortunately, it might convey some credibility to the untrained eye. Perhaps that's an argument for MS to re-axe the MVP program.

Wednesday, March 09, 2005 11:21 PM by Matt

# re: Not all MVPs are signing Petition about VB

> although I prefer C# now.

Which is kind of the point. One of the major side effects of this change is that VB is no longer the largest development community in the world, because so many devs switched to C#. And that's a big change from the Way Things Used To Be. It's why there is (currently) no version of Resharper for VB.NET.

If you want to be a part of the largest, most popular development community in the world, you don't pick VB. Not any more.

Thursday, March 10, 2005 12:46 AM by Jeff Atwood

# The Slow Brain Death of VB.NET

It's amusing that the very people defending VB.NET are, ironically, illustrating precisely why VB.NET is in such trouble: I just want to make it clear that I am one MVP that does NOT intend to sign this petition about...

Thursday, March 10, 2005 1:58 AM by TrackBack

# re: Not all MVPs are signing Petition about VB

The point your blog misses is that Microsoft has not only dropped VB6, but also hasn't provided a usable upgrade path.

To ask for one is not either pro- or anti-NET. It has nothing to do with .NET at all.

To accept that Microsoft can get away without providing an upgrade path should be a worry to you. The key people in the developer tools division at Microsoft seem to have lost sight of the concept that a language and a platform are two separate things.

Platforms come and go. What will you do with the code you have written and need to maintain when the .NET platform goes and Microsoft abandons the languages that formerly targeted it? Of course, it will still be available for a while even after Microsoft stops selling it, so people will tell you "C# hasn't gone away, carry on coding in C#". But the time will come when modern platforms no longer support the latest version of the framework you can still compile to. At or before that point, you will be faced with abandoning all your code and starting again in a new language.

If anything, as a programmer in a new and untried language without any track record in long-term stability, it would be in your interest for the petition to succeed, simply to concentrate the minds of the people at Microsoft on the need to allow developers and application owners to preserve and manage their code assets, lest Microsoft pull the same trick on you in some years time.

So how about a signature from you?

Thursday, March 10, 2005 6:05 AM by Jonathan West

# re: Not all MVPs are signing Petition about VB

I disagree that there is no usable upgrade path. I can only assume that you think a usable upgrade path means that you will not have to make any modifications to your code, but that's just not realistic. So get over it -- no signature from me.

Thursday, March 10, 2005 7:30 AM by Paul Wilson

# re: Not all MVPs are signing Petition about VB

I agree with Paul's statement above on this. I had no problems converting my apps from VB6/ASP to VB.NET/ASP.NET and now that I have learned .NET there is no way you could get me to go back to using VB6. If it's that important to you guys that you don't have to write any code to upgrade your apps, then quit bitching about it and write a migration tool.

Thursday, March 10, 2005 7:50 AM by Chris Wallace

# Using Forms Authentication with Windows Authentication (

Thursday, March 10, 2005 8:59 AM by TrackBack

# Using Forms Authentication with Windows Authentication (

Thursday, March 10, 2005 9:31 AM by TrackBack

# re: Not all MVPs are signing Petition about VB

I'm not suggesting that there should be no rewriting at all. But the claim that the migration wizard can do 95% of the work is a sick joke. If it could do 95% of the work, then adoption would have been higher. There's not reason in principle why it couldn't.

As for building a migration tool myself, I have a business to run and code to write. Building a migration tool is probably more of a cost than doing it all by hand. If you think it is so easy, write it yourself and give it away to enoucrage people to migrate!

Thursday, March 10, 2005 9:44 AM by Jonathan West

# re: Not all MVPs are signing Petition about VB

Why would I build something I don't need? I'm not the one complaining about having to migrate my code. And it wouldn't make good business sense for me to encourage people to migrate, the less people that do, the more work there is for people like me that already did.

Thursday, March 10, 2005 10:32 AM by Chris Wallace

# Re: Not all MVPs are signing Petition about VB

Are these VB6 guys still writing NEW applications in VB6? If so, why? If they are just talking about migrating old code to VB.Net, then why? Doesn't the old VB6 version still work? Do they still have clients on Windows 3.1?

Applications have a limited life. They need to be replaced from time to time - or at least substantially updated. This is the time to make the switch. The whole argument just doesn't make any sense to me.

If they want to stay in the 80's with bad hair and shoulder pads then let them. I see no reason to sign.

I'd like to start an MVP petition for MS to NOT continue working on VB6. It's wasted money that could be better used on more modern and useful technology.

Thursday, March 10, 2005 4:00 PM by peter@jonsie.net

# re: Not all MVPs are signing Petition about VB

Sometimes I just wish a platform will die a dignified death. Windows 3.11 was such a beast, and later, I looked forward to not having to support Windows 98 versions of software.
I feel the same way about Visual Basic 6.0.

I suppose that around 2010 I'll be greatful to drop support for Windows 2003. Of course, there'll still be the "Windows 2010 VB/COM+ Virtual Machine" to deal with.

Thursday, March 10, 2005 7:47 PM by Jerry Dennany

# re: Not all MVPs are signing Petition about VB

I don´t sign, because i don´t think that it would make any sense to do it ;-) <the VB6 aera ended, and i have to move on - if i enjoyed the aera or not, and no petition in the world can bring me that aera back. Same is happening right now with VBA aera ...>

@Jonathan: If upgrading from a car, which has a motor driven with firewood to a one driven with gasolin, there are some changes for which you could´t and wouldn´t want any migration tools.

What i mean is: there are some things which just couldn´t be ported correctly and which are not useful to port due to total different architecture. I think that´s a general problem with evolution: You´ve to move and learn and have to change your thinking to follow it.

BTW If you think that you can do a better converter, then try to find a sponsor and just do it. I as chief of a company wouldn´t want to sponsor you, instead i´d use the same amount of money for retraining my stuff, that pays much better in the long run...

Friday, March 11, 2005 7:11 AM by Klaus Oberdalhoff

# re: Not all MVPs are signing Petition about VB

Here's my two cents. Those who are signing the petition don't want to do a little work to migrate their code, and don't want to invest in their knowledge portfolio. Too bad! This is the field that your are in; it's always changing. At one point, I belive that was what attracted you to this field. If it doesn't anymore, find a new field of work.

Friday, March 11, 2005 10:16 AM by JT

# re: Atlanta .NET Regular Guys and Code Camp

Wonder if they are as funny as the radio "Regular Guys?" ;-)

Friday, March 11, 2005 10:36 PM by Wallym

# Atlanta .NET Regular Guys Lunch chat with Paul Wilson

Saturday, March 12, 2005 6:59 PM by TrackBack

# re: Mats Helander has released ObjectMapper

Yeah...Just because of the name I seriously hesitate...

Monday, March 14, 2005 11:14 AM by Tim Erwin

# re: JavaScript Oddity in FireFox

But Mozilla IS lower than IE....

Monday, March 14, 2005 11:16 AM by Tim

# re: Not all MVPs are signing Petition about VB

"I'm not suggesting that there should be no rewriting at all. But the claim that the migration wizard can do 95% of the work is a sick joke. If it could do 95% of the work, then adoption would have been higher."

See? Now THAT sounds like the start of a REASONABLE petition for Microsoft: More upgrade support. That'd would perhaps get Microsoft working on something realistic instead of VB.COM4Life.

Tuesday, March 15, 2005 2:01 AM by Michael Giagnocavo

# re: Not all MVPs are signing Petition about VB

Quote: "To accept that Microsoft can get away without providing an upgrade path should be a worry to you."

Hmmm, once upon a time there was no Microsoft and all accross the land used to have to write their own drivers, their own languages, their own updates in machine code...

If you are really "that" bothered, "you" pay the money out to upgrade it! Build yourself a compiler to compile your code. It is really quite simple. This is a product we are talking about - how would you cope if Microsoft had of gone belly up?!

Languages come and go what really sets a programmer apart from the rest are those that learn the new languages. If you need to upgrade your product to a new version then you are most likely lazy. Want the cheapest way to get at the better technologies. What you fail to realise is that to get the better technologies you need better languages to cope.

Even more ammusing is that you could actually upgrade in stages as VB is COM and COM is support by .NET (with a small time hit)

Wednesday, March 16, 2005 9:06 AM by Chris

# re: JavaScript Oddity in FireFox

'Tim', I pity you.

Saturday, March 19, 2005 1:27 AM by netdrdroid9

# Enabling Evil - Tunnelling Xml within Xml using the XmlSerializer and some Magic

Tuesday, March 22, 2005 3:11 PM by TrackBack

# Re: Article on my Open-Source ADO.NET XML Provider

Awesome!

Wednesday, March 23, 2005 9:51 PM by mearls@hotmail.com (Michael Earls)

# re: Not all MVPs are signing Petition about VB

I can't believe no one jumped on the statements made above about "If anything, as a programmer in a new and untried language without any track record in long-term stability, it would be in your interest for the petition to succeed..." is a complete joke!

At my company, we have seen huge improvements in reliability and robustness of the applications that we are creating in VB.NET and ASP.NET over ASP, VB6, and COM/COM+. Just handling maintenance on some of the old applications is more costly than a refactor of the COM+ objects to .NET assemblies.

Untried? Long-term stability? <*cough*> I have been using .NET since July 2000 when they handed out the BETA at the PDC in Florida. The stuff in BETA then was good enough for deployment (albeit with some parts I wished had more work). After more than *FOUR* years, how long do we need to wait to accept it as tried and true?

If anything, Microsoft has devoted too many resources and time worrying about the last service pack to Visual Studio 6.0. Not many other companies would have spent the time to build that last service pack after release of a new version. How many of you still actively maintain the code base for your released product two major revisions behind the current one?

Newbie developers that I know also seem to find development with .NET more consistent and straightforward, but here my opinion may be slightly biased since most of our applications are web based and not windows applications.

If anything, the death of COM itself is long overdue... that statement should light a flame of messages. Are you guys going to go off and build COM4EVER.com? Yes, someday web services will be passe.

Bottom line... each generation of software brings with it capabilities and efficiencies that allow us to build more complex systems with more functionality than the previous because of the greater reliability and richness of the base software. We no longer spend large amounts of time languishing over sorting algorithms and putting bytes into and out of packets. Instead we worry about implementing business logic specific to our vertical (business). Why hold a gun to their head and require them to spend millions of dollars to support or construct something that will satisfy the needs of dozens of people, and at the same time propagate forward a code base that needs refactoring anyway?

Friday, March 25, 2005 10:17 AM by Jason Hamby

# re: Not all MVPs are signing Petition about VB

Is this the Jason Hamby that used to work with me ? If so, drop me a line.

Friday, March 25, 2005 10:32 AM by Paul Wilson

# re: Mats Helander has released ObjectMapper

Paul, any plans to have ObjectMapper target your O/R mapper?

Friday, March 25, 2005 2:49 PM by Philipp

# re: Mats Helander has released ObjectMapper

That's kind of up to Mats -- he said he was interested, but I'm sure he's also very busy so I can't speak for him. I'm more than willing to help when the time does come though.

Friday, March 25, 2005 2:55 PM by Paul Wilson

# re: WilsonORMapper v3.1.0.2 Released

Sweet!

Saturday, March 26, 2005 7:17 PM by Travis

# re: WilsonORMapper v3.1.0.2 Released

Cool, is it backward compatible? Any update on the possibility of a shared documentation wiki or somesuch?

Sunday, March 27, 2005 1:17 AM by Steven Smith

# re: WilsonORMapper v3.1.0.2 Released

Definitely backwards compatible -- just minor bug fixes and improvements. I've downloaded FlexWiki, but as usual my time is extremely tight so I haven't installed it anywhere yet.

Sunday, March 27, 2005 11:47 AM by Paul Wilson

# Paul Wilson has released the latest version of his wonderful ORMapper (3.2)

Wednesday, March 30, 2005 11:17 AM by TrackBack

# re: WilsonORMapper v3.2.0.0 Released

Great job! It's very encouraging to see your commitment to continued development.

Wednesday, March 30, 2005 12:56 PM by Sam

# re: Enterprise Manager Tip

yep as you stated its kind of common knowledge...

Thursday, March 31, 2005 11:12 AM by Yuval

# re: Enterprise Manager Tip

Hey, good tip!

Thursday, March 31, 2005 11:55 AM by M. Keith Warren

# re: Enterprise Manager Tip

I must not be so common I guess =/

Thanks!

Thursday, March 31, 2005 1:28 PM by Nidifice

# re: Enterprise Manager Tip

Thats the reason Micrsoft Rocks. I just like the tools even if they have bugs.

Thursday, March 31, 2005 1:46 PM by hemant

# re: Enterprise Manager Tip

Nope... didn't know that! Of course, I just figured out Windows Key-E last year. :)

Thursday, March 31, 2005 2:27 PM by Jeff

# re: Enterprise Manager Tip

No I didn't know that, thanks Paul!

Thursday, March 31, 2005 4:55 PM by Terri Morton

# Enterprise Manager tip

Thursday, March 31, 2005 5:54 PM by TrackBack

# Enterprise Manager tip

Thursday, March 31, 2005 5:57 PM by TrackBack

# re: Enterprise Manager Tip

Thanks for the tip, that's the most useful thing I've read all day.

Friday, April 01, 2005 3:31 AM by Kevin Daly

# re: Enterprise Manager Tip

Yeah not so common....Thanks

Windows + E ...hehe

Friday, April 01, 2005 3:12 PM by coenen

# re: WilsonORMapper v3.2.0.0 Released

Not directly related to this release...

http://forums.mysql.com/read.php?38,17809,20753#msg-20753
If you are using Wilson O/R Mapper this connection string will fix the MySql DateTime issue:

<add key="ConnectionString" value="Server=localhost;Port=3306;Database=DBNAME;Uid=[UID];Pwd=[PWD];Allow Zero DateTime=False" />

The key here is:

Allow Zero DateTime=False

[MySqlConversionException: Unable to convert MySQL date/time value to System.DateTime]

--
Sincerely,
David Dimmer
Director of Development

Fyin, Inc.
Local: (414) 431-8674
Toll free: (800) 680-2326
Fax: (414) 431-8704
W: http://www.fyin.com
Complete Website Design and Interactive Programming

Friday, April 01, 2005 10:42 PM by David Dimmer

# re: Microssoft office

They want to check the possibility of someone stayed hidden (or lost) inside the building. By the way I hope your wife is going much better.

Tuesday, April 05, 2005 12:54 AM by Nikos Delibaltadakis

# Wilson O/R Mapper and Templates Updated

Tuesday, April 05, 2005 4:32 AM by TrackBack

# re: Visited Atlanta C# User Group

But they didn't have anyone at the gate when I entered earlier, so they wouldn't know I was trying to stay hidden even if I were. :)

Tuesday, April 05, 2005 8:02 AM by Paul Wilson

# re: WilsonORMapper v3.2.0.0 Released

as always ... another great release! :)

Tuesday, April 05, 2005 11:56 AM by Jimmy Zimms

# re: Visited Atlanta C# User Group

Yup, always good to see you, Paul. That was fun - When are you going to talk at one of these?

Tuesday, April 05, 2005 3:19 PM by Jerry Dennany

# re: Visited Atlanta C# User Group

Let's see if I crash and burn at code camp first.

Tuesday, April 05, 2005 3:44 PM by Paul Wilson

# re: Not all MVPs are signing Petition about VB

Hey Paul,
This petition is a joke...correct?
-Mathew Nolton

Wednesday, April 06, 2005 8:00 AM by Mathew Nolton

# re: Not all MVPs are signing Petition about VB

Hey Matthew:

You know as much about as do I if you have read it. I don't have any insider information about it beyond that. It doesn't look like a joke in any way, although I think most signers are making a statement more than expecting change.

Wednesday, April 06, 2005 8:51 AM by Paul Wilson

# Re: How do you make FlexWiki readonly to Anonymous Users ?

Off the top of my head, you might need to get into the source and put a call to Context.User.Identity.IsAuthenticated before committing any changes. Probably not what you wanted, but it would be cool to have a feature. You could make it a config setting and everyone would be happy.

Wednesday, April 06, 2005 11:44 AM by mearls@hotmail.com (Michael Earls)

# re: How do you make FlexWiki readonly to Anonymous Users ?

I don't know much about it, but SushiWiki (written in C#) can use authentication, from what I can tell. A co-worker I had on my last contract was using it and it looked really nice.

Some links:

Home: http://luminal.gotdns.com/sushiwiki/
Source: http://sourceforge.net/projects/sushiwiki

Wednesday, April 06, 2005 5:44 PM by Jason Bunting

# re: Visited Atlanta C# User Group

I am sure Code Camp will be great. Then we just need to get Jerry to present also.

Wednesday, April 06, 2005 9:59 PM by Brendon Schwartz

# re: Visited Atlanta C# User Group

I had a hard time getting anyone else to talk in our lunch-n-learns -- but everyone now and then I succeeded -- and Jerry is very good. :)

Wednesday, April 06, 2005 11:22 PM by Paul Wilson

# re: How do you make FlexWiki readonly to Anonymous Users ?

That actually goes against the concept of a Wiki, and more into a CMS type solution. Of course, I'm not saying that you can't do it, it's just... odd.

Thursday, April 07, 2005 8:27 PM by Jerry Dennany

# re: Visited Atlanta C# User Group

dang, that's close enough that I could've walked from my house! how'd I miss the announcement, I wonder.

Thursday, April 07, 2005 9:07 PM by steven vore

# re: How do you make FlexWiki readonly to Anonymous Users ?

Well you know me -- I'm an odd one. :)

Thursday, April 07, 2005 9:09 PM by Paul Wilson

# re: Visited Atlanta C# User Group

Ah, but unfortunately someone scheduled Code Camp on the same day I 'walk' for my graduation.

All of the Atlanta Developers should have consulted me before scheduling this! Now I don't get to see Paul talk the talk...

Friday, April 08, 2005 2:06 AM by Jerry Dennany

# re: How do you make FlexWiki readonly to Anonymous Users ?

I think that the forums are fine for collaboration. A Wiki is fine for some things; but, I do not really see the necessity for it on www.WilsonDotNet.com right now. That is just my opinion. That said, all that I can do is underscore what others have said-- that is, in my experience, some Wiki implementations support authentication and some do not however using authentication does go against the the "ideals" of the Wiki itself, or so would claim the purist. HTH.

Wednesday, April 13, 2005 3:19 PM by Mark Kamoski

# re: I knew I was Southern -- but I didn't think it was this obvious

I'm 100% general. Huh. Must be my broadcast background. I mean, look at Peter Jennings, he doesn't even sound Canadian most of the time!

Friday, April 15, 2005 8:04 PM by Jeff

# re: How do you make FlexWiki readonly to Anonymous Users ?

Authentication is becoming a matter of life for web based applications, especially Wiki's, now.

The first problem is spam bots. Anonymous posting allows the spam bots in, and any defense mechanism will eventually be defeated.

The second problem is that in the abscence of spam bots, you have to resort to some variety of human intervention to clean up all the stuff that l33t h4x0r types do to pages, or totally off topic, etc. comments.

With registered accounts, you at least have a shallow layer of defense. You know who posted it, etc.

This has been one thing hurting the legitimacy of sites like wikipedia, in fact. Allowing anyone to update and correct is fine, but it becomes difficult to verify what information is accurate and what information is not in a given entry.

Tuesday, April 19, 2005 1:32 PM by Dave Bacher

# re: How do you make FlexWiki readonly to Anonymous Users ?

I've used "location" tags in the web.config file to allow access to the viewer page and not to the edit page the details are in the FlexWiki FAQ, can't find them now, but I hope that helps.

Tuesday, April 19, 2005 5:28 PM by Vaccho Van Valt

# re: Enterprise Manager Tip

Great tip, definitively not common knowledge!

Tuesday, April 19, 2005 6:53 PM by Jason Hoekstra

# re: How do you make FlexWiki readonly to Anonymous Users ?

Eh, I don't see anything anti-wiki about authenticating your users. So long as registration is free and really easy. Plus, if the other users can't see their IP, you are still pretty anonymous.

When you have authenticated users updating the site, you can track a specific individual's modifications, and even ban an IP if that person is abusive of the wiki.

I'm sorry I don't have anyting useful to say! :/ I myself am very interested in .Net wikis, so thanks for posting about this shortcoming of FlexWiki.

Wednesday, April 20, 2005 4:42 PM by Todd Moon

# re: How do you make FlexWiki readonly to Anonymous Users ?

Have a look at Mambo. It is a full CMS system, and maybe more than you want, but it is trivial to install and administer. Unfortunately, for you, it is a LAMP solution which you may not be looking for judging from your blog.

Friday, April 22, 2005 7:42 PM by Derek Williams

# re: I knew I was Southern -- but I didn't think it was this obvious

I wish i was a pure breed like you guys. but as a mongrow i have to admit i am proud for not sounding too Israely there.
Yeehaw!!!

Monday, April 25, 2005 5:10 AM by Yuval

# Your Linguistic Profile

Monday, April 25, 2005 11:16 PM by TrackBack

# re: I knew I was Southern -- but I didn't think it was this obvious

Ok, I'm 60% General American English, 20% Dixie, 20% Yankee, not too bad for someone from China.

Tuesday, April 26, 2005 10:47 PM by Yang

# Personal Update -- Progress Report on Cancer

Thursday, April 28, 2005 10:16 PM by TrackBack

# Personal Update -- Progress Report on Cancer

Thursday, April 28, 2005 10:17 PM by TrackBack

# re: Personal Update -- Progress Report on Cancer

My prayers go out to all of your family. I can't imagine what it's like to deal with something like that and still try to continue meeting the rest of life's obligations.

Friday, April 29, 2005 12:06 PM by Jeff

# re: Personal Update -- Progress Report on Cancer

Best wishes to all your family. I hope things keep progressing well for you all.

Friday, April 29, 2005 7:05 PM by Alex James

# re: Personal Update -- Progress Report on Cancer

Best wishes to Jenny, your kids, and yourself Paul. I'm glad to hear you are all managing okay considering what you're dealing with. I hope things get easier for Jenny and yourself in the near future.

Friday, April 29, 2005 9:32 PM by Tim Haines

# re: Personal Update -- Progress Report on Cancer

I hope that everything gets better. As always, if there's anything you need...

Saturday, April 30, 2005 11:31 AM by Jerry Dennany

# re: Personal Update -- Progress Report on Cancer

Best wishes, Paul. This is the first I knew of this, and I feel like a bit of a jerk for bugging you about ORMapper stuff a couple of months ago. If I can help with anything, let me know.

Sunday, May 01, 2005 3:40 PM by Steve Smith

# re: Personal Update -- Progress Report on Cancer

All the best to your family and you're in my prayers.

Tuesday, May 03, 2005 5:13 AM by Rick M.

# re: Nullable Types are NOT Integrated in .NET v2.0

Well, since the idea of nullable value types was just plain left out of a modern platform (.NET) in the beginning was incredibly bizarre to me, especially in this age of database interactivity.

Getting nullables to be more integrated is a definitely great start to get the platform (.NET) into CURRENT standards, instead of OO-based C++ standards of 10 years ago (where Objects would serialize/deserialize locally...)

Agreed these "irritations" with the DataReaders is annoying, and IMO the IDataReader interfaces should obviously be extended (via IDataReader2 or IDataReaderEx or something) to provide nullable types through the interface, and hence "encourages" implementing it all the way through to the SqlDataReader's implementation of
"int? IDataReader2.GetInt32(int ordinal)"

Tuesday, May 03, 2005 4:23 PM by Eric Newton

# re: Nullable Types are NOT Integrated in .NET v2.0

Just say no to NULLS!

Join PAN. Programmers Against Nulls!

Tuesday, May 03, 2005 6:09 PM by NotNull

# re: Nullable Types are NOT Integrated in .NET v2.0

It's not just IDataReader that's not supported. NONE of the System.Data classes support nullable types. Just try to use something like

command.Parameters.AddWithValue("@SomeParam", (int?)null)

This will throw an exception once you try to execute the command. Yet the following works:

command.Parameters.AddWithValue("@SomeParam", SqlInt32.Null)

There aren't even any implicit/explicit conversions between SqlTypes and Nullable types. I was baffled when I noticed that.

It's things like this that make nullable types *really* annoying to work with when you're doing database work.

Erm, refresh my memory, why were they added again?

Tuesday, May 03, 2005 6:21 PM by Ruben

# re: I knew I was Southern -- but I didn't think it was this obvious

I'm a mess of all of them.

Tuesday, May 03, 2005 7:24 PM by foobar

# re: Nullable Types are NOT Integrated in .NET v2.0

Checkbox feature. Let's hope something better shows up in before final release.

Tuesday, May 03, 2005 7:26 PM by foobar

# re: Nullable Types are NOT Integrated in .NET v2.0

Well, one of the major problems is the idea of NULL in the database in the first place.

One of my major complaints about the SQL Server 2000 table design tools is that columns allow NULL by default. This is a pretty significant design decision, and I believe that NULLs should be allowed in the database only in extra-ordinary circumstances.

However, many 'DBAs' allow null by default, and it really creates havoc.

NULLable types are a hack to make programming against screwy database designs easier for client-side programmers.

Tuesday, May 03, 2005 11:02 PM by Jerry Dennany

# re: Nullable Types are NOT Integrated in .NET v2.0

You know, while you ARE right....

...personally I do not care about the database integration at all. I use an O/R mapper fo rall my database work, including parameters, and I thus can add all the integration and conversion code within MY O/R mapper - so parameters etc. will work.

What really makes me upset is the other part. our points (2) and (3) are in levels that the USER of the O/R mapper has to work with. And there it will come back and hit them. There is no way I can hide (yet again) databinding efficiencies. There is no way I can handle the convert issue.

And this really shows how much an afterthought this is. MS drops the ball again (on databinding). Are they the only company which will take a dozen or so attempts o get this right?

Tuesday, May 03, 2005 11:43 PM by Thomas Tomiczek

# re: Nullable Types are NOT Integrated in .NET v2.0

Last year at Teched Europe, someone asked Dan Fernandez about nullable types and datareader... they (he and another MS guy) got that look on their face: "oh erm... whoa, we didn't think of that! we'll pass it on!". Nothing happened apparently.

Oh, btw, DON'T use datareader.IsDBNull(..). It's very slow. Test the value for System.DBNull.Value, much faster. (magnitudes faster)

I also find the lack of integration of nullable types a severe stupidity. I mean, int's and all ARE already structs. All it takes is another field. ONE FIELD.

ok, you can use Nullable<T> but that's almost 50% slower. Why, I don't know, as it's just 1 flag, 1 BIT.

Wednesday, May 04, 2005 3:03 AM by Frans Bouma

# NotNull

Wednesday, May 04, 2005 5:05 AM by TrackBack

# re: Nullable Types are NOT Integrated in .NET v2.0

Check out NullableTypes on SourceForge. Works with .NET 1.1 and VB providing useful conversion functions etc.

http://nullabletypes.sourceforge.net

Wednesday, May 04, 2005 6:10 AM by Damien Guard

# re: Nullable Types are NOT Integrated in .NET v2.0

Paul,

Wow, thanks for the headsup.

Wally

Wednesday, May 04, 2005 6:46 AM by Wallym

# re: Nullable Types are NOT Integrated in .NET v2.0

WTF?
I thought that interaction with nullable fields in the DB (such as situation #1) was the main line for nullable types in the framework. Mostly to eliminate all kinds of null checking.

If they don't do that then why even spend the time to implement it?


?UsefullType

Wednesday, May 04, 2005 9:17 AM by AndrewSeven

# re: Nullable Types are NOT Integrated in .NET v2.0

I think the issue at the core here is that nullable types are never actually nulls.

int? i = null;

Assert(i == null);
Assert((object)i == null); // WILL FAIL

nullable types are simple objects with a flag. I think because all those methods take and return base Object type, when type casted to a nullable type with a "null" value, you wouldn't get a null in result.

I think the problem is not integration, but how the nullable types are implemented in the first place.

That's at least how I understand it.
http://blog.dreamprojections.com/archive/2005/04/10/787.aspx

Wednesday, May 04, 2005 12:25 PM by Alex

# re: Nullable Types are NOT Integrated in .NET v2.0

I don't think anyone expects them to be null -- just to be integrated with their expected uses.

Wednesday, May 04, 2005 12:45 PM by Paul Wilson

# re: Nullable Types are NOT Integrated in .NET v2.0

Wednesday, May 04, 2005 4:24 PM by Wilco Bauwer

# Nullable Types are NOT Integrated into .Net V2.0 (not Beta 2 atleast)

Wednesday, May 04, 2005 7:39 PM by TrackBack

# Re: Personal Update -- Progress Report on Cancer

Good luck.

Thursday, May 05, 2005 1:09 AM by mearls@hotmail.com (Michael Earls)

# re: Nullable Types are NOT Integrated in .NET v2.0

I've been reading up on the subject...........And the impedance mismatch continues.

Friday, May 06, 2005 8:28 AM by Wallym

# re: Preparing for the Atlanta Code Camp

It will be a great presentation and I would love to be there. Learning about O/R Mapping from The Master, for sure. Hope your allergies settle down for the show.

Friday, May 13, 2005 5:38 PM by Dave Burke

# re: Preparing for the Atlanta Code Camp

You made a great presentation, Paul! You had the best one of all of them, and Todd Fine's Avalon/XAML was the next best.

Your presentation skills were great, and your content was first-rate. I'm not ready to run into ORM head-first, but you made some compelling arguments and I certainly will be looking into ORM more.

Sunday, May 15, 2005 10:58 PM by Eric Engler

# re: Preparing for the Atlanta Code Camp

So how'd ya get on Paul?

Monday, May 16, 2005 5:11 AM by Tim Haines

# re: Preparing for the Atlanta Code Camp

You're going to give me a big head Eric -- I'm glad you thought it was great, but I'd also appreciate any critical comments also. I know I wanted to cover more material of course, but I did at least hopefully succeed in my main goal of convincing people to consider O/R Mapping, while giving at least a little of a head start in that direction too.

Monday, May 16, 2005 9:36 AM by Paul Wilson

# re: Preparing for the Atlanta Code Camp

I'm sorry that I had to miss it! The word on the street was that it was a good presentation.

Tuesday, May 17, 2005 9:49 AM by Jerry Dennany

# re: Wally McClure Releases .NET PodCast -- Guess Who is Interviewed

Paul, you were awesome!

Tuesday, May 17, 2005 9:49 PM by Wallym

# re: Wally McClure Releases .NET PodCast -- Guess Who is Interviewed

I don't think it sounded bad and I hope no one holds that against you. Great job guys!

Wednesday, May 18, 2005 12:19 PM by Brendon Schwartz

# re: Wally McClure Releases .NET PodCast -- Guess Who is Interviewed

Far to modest, methinks.

However, I sense a pattern from listening to this podcast. You seem like challenges - when someone tells you "Something can't be done" you go out and do it.

So, next time I can't figure something out, I'll just tell you that it's not possible.

Wednesday, May 18, 2005 3:38 PM by Jerry Dennany

# re: Wally McClure Releases .NET PodCast -- Guess Who is Interviewed

This was enjoyable, nice job!

Wednesday, May 18, 2005 11:16 PM by Terri Morton

# (Deprecated) OPath Documentation

Users of the Wilson O/R Mapper sometimes ask for some documentation about OPath in their user forum, since the mapper supports a query language similar (or identical?) to OPath.

Here you are---ObjectSpaces articles that might be useful when working with Wilson O/R Mapper (a design goal of which seems to be to mimic the ObjectSpaces API design), an incomplete list in no particular order.

Sunday, May 22, 2005 10:39 PM by TrackBack

# (Deprecated) OPath Documentation

Users of the Wilson O/R Mapper sometimes ask for some documentation about OPath in their user forum, since the mapper supports a query language similar (or identical?) to OPath.

Here you are---ObjectSpaces articles that might be useful when working with Wilson O/R Mapper (a design goal of which seems to be to mimic the ObjectSpaces API design), an incomplete list in no particular order.

Sunday, May 22, 2005 10:52 PM by TrackBack

# re: WilsonORMapper v4.0 Released -- Includes .NET v2.0 Generics and Nullable Types

Thank you, Paul!

Thursday, May 26, 2005 10:26 AM by David Neal

# re: WilsonORMapper v4.0 Released -- Includes .NET v2.0 Generics and Nullable Types

Paul Wilson is a guru if there ever was one.

Thursday, May 26, 2005 11:04 AM by Wallym

# re: WilsonORMapper v4.0 Released -- Includes .NET v2.0 Generics and Nullable Types

And Wally is in my book. :)

Thursday, May 26, 2005 11:07 AM by Paul Wilson

# re: WilsonORMapper v4.0 Released -- Includes .NET v2.0 Generics and Nullable Types

w00t!

So I assume Jeff is going to continue improving the OPath support then? That would rock.

Thursday, May 26, 2005 11:24 AM by Jason Bunting

# re: WilsonORMapper v4.0 Released -- Includes .NET v2.0 Generics and Nullable Types

I hope so. :)

Thursday, May 26, 2005 11:27 AM by Paul Wilson

# re: Wally McClure Releases .NET PodCast -- Guess Who is Interviewed

Wow seems this podcasting is really taking off, its going to be a big bandwidth eater for shared hosters hehe.

Thursday, May 26, 2005 11:48 AM by Salman

# re: Check out my "Real" NHibernate Example App

Paul,

Thanks for this. I am also in the process of learning NHibernate and am doing so very much in a trial and error fashion due to the lack of real world examples. This will help me quite a bit.

I have also find Cuyahoga (http://www.martijnboland.com/cuyahoga/) to be quite a good learning aid.

Jerrie

Thursday, May 26, 2005 1:36 PM by Jerrie Pelser

# re: Check out my "Real" NHibernate Example App

Hi Paul,

Thanks for the example, i will check it out.

btw. what a links, trying to get google to like you? :-)

Thursday, May 26, 2005 1:55 PM by Joe

# re: Check out my "Real" NHibernate Example App

Thank you very much. I just tried both the NHibernate and WilsonORMapper versions; they worked both out of the box against the same database.
I am playing a bit with NHibernate the last weeks and enjoy your comments about documentation. Your app shows quit interesting details I did not catch before.
But wouldn’t it be so much more work to clean up the code and refactor it into different layers? Or is this the real challenge of ORMappers?
I will examine it on my own.

Thursday, May 26, 2005 1:58 PM by Stefan Cullmann

# re: Check out my "Real" NHibernate Example App

Have you come across Cuyahoga? (http://www.martijnboland.com/cuyahoga/) It is a content management system using NHibernate. The author's website also includes some useful tutorials on NHibernate in a real-world application such as this.

Thursday, May 26, 2005 2:39 PM by James

# re: Check out my "Real" NHibernate Example App

Martijn's Cuyahoga is probably the only other real example I've seen, but to me it was too much of a real app and not enough of an example -- not any fault of his, afterall that's the point since it is a real app that he's making with it.

As for refactoring into different layers -- I don't think its a challenge at all actually. Its mostly the same principles you would apply in any other layerd app, although easier in my opinion, but of course I left that undone in my example.

Thursday, May 26, 2005 2:47 PM by Paul Wilson

# re: Check out my "Real" NHibernate Example App

Hi Paul

Well done!

We can never have enough sample applications to show the merits of O/R mapping. This one is especially nice because it covers many of NHibernate's mapping options but it's also pretty small and easy to understand.
One remark about the application: you used the IQuery interface but the hql consist of concatenated strings where everybody should really use the parameter options with the IQuery interface (for obvious security reasons).

Thursday, May 26, 2005 5:20 PM by Martijn Boland

# Check out my

Friday, May 27, 2005 7:00 AM by TrackBack

# Questo far

Friday, May 27, 2005 4:36 PM by TrackBack

# re: Check out my "Real" NHibernate Example App

I was able to make NHibernate work against access using the oledb option.

Saturday, May 28, 2005 3:28 PM by Udi Dahan - The Software Simplist

# re: Check out my "Real" NHibernate Example App

Hi Paul,

Thanks for the example app - I've been looking for something like this for a couple of weeks now. This one looks like it demonstrates a lot of the main features I would like to take advantage of.

However, I'm having trouble getting the example app to run. In the LoadContacts() method, when I hit this line:
this.ContactGrid.DataSource = session.CreateQuery(query).List();

I get this error:

An unhandled exception of type 'NHibernate.ADOException' occurred in nhibernate.dll

Additional information: Could not execute query.

Any suggestions on what I might be doing wrong?

Thanks!

Saturday, May 28, 2005 9:34 PM by Dale Smith

# re: Check out my "Real" NHibernate Example App

Hey Dale:

Hopefully someone more experienced with NHibernate can shed some light on it. The only thought I have is probably not the issue, but I suppose I should ask anyhow -- have you created the database with the sql script? Yea, probably not the issue. :)

Good luck, Paul

Saturday, May 28, 2005 10:27 PM by Paul Wilson

# re: Check out my "Real" NHibernate Example App

Yeah, I ran the script to create the db instead of doing it by hand. I haven't been able to get ISession.CreateQuery() to work in either your example or my practice app. Still can't figure it out. If I come up with the solution, I'll post it here.

Saturday, May 28, 2005 10:46 PM by Dale Smith

# re: Check out my "Real" NHibernate Example App

Hi Paul,

I figured it out. Dumb move on my part: for some reason the ORMExample login didn't work for me. I just changed it to a login that does work and voila, I'm in business!

Now if I can figure why I'm messing around with computers at midnight on a Saturday night instead of messing around with my wife, I'll be making some real progress.

thanks,
Dale

Sunday, May 29, 2005 1:14 AM by Dale Smith

# re: Check out my "Real" NHibernate Example App

Dale,

There is probably something wrong with your connection string. Take a look in the log.txt file for more details about the exception.

Sunday, May 29, 2005 8:46 AM by Martijn Boland

# re: How/Why I Added a Wiki for WilsonDotNet

Just wondering about some of the other mechanics, Paul -- are you storing the "pages" in a database, and then rendering them into your master pages? What do the "edit" URLs look like? What about creating new pages?

TTFN - Kent

Monday, May 30, 2005 8:11 PM by Kent Sharkey

# As is often the case, Paul has it right

Rather than religiously following an idea (that I still think only wikipedia
got right, but that it...

Monday, May 30, 2005 8:31 PM by TrackBack

# re: How/Why I Added a Wiki for WilsonDotNet

Hey Kent:

I'm using the file system for my topics, and their history, although it wouldn't be much harder to use a database. As for the details, you can view all the code in my free section of code on the site itself:

SideBar:
http://www.wilsondotnet.com/Code/?path=Wiki&file=ControlMain.ascx
http://www.wilsondotnet.com/Code/?path=Wiki&file=CWiki.ascx.cs

Content:
http://www.wilsondotnet.com/Code/?path=Wiki&file=Default.aspx
http://www.wilsondotnet.com/Code/?path=Wiki&file=DWiki.aspx.cs

Basically, a logged in user see's a link to edit the current content (the querystring is ?edit=name instead of ?topic=name) and there is also a textbox and linkbutton to create a new topic (placed in a separate form by using my WilsonWebForm).

Thanks, Paul

Monday, May 30, 2005 9:40 PM by Paul Wilson

# Link Listing - May 30, 2005

Link Listing - May 30, 2005

Monday, May 30, 2005 11:44 PM by TrackBack

# Link Listing - May 30, 2005

Link Listing - May 30, 2005

Monday, May 30, 2005 11:44 PM by TrackBack

# NHibernate:

Tuesday, May 31, 2005 11:46 AM by TrackBack

# NHibernate:

Tuesday, May 31, 2005 11:46 AM by TrackBack

# NHibernate:

Tuesday, May 31, 2005 11:47 AM by TrackBack

# NHibernate:

Tuesday, May 31, 2005 11:47 AM by TrackBack

# Weird Wiki

Thursday, June 02, 2005 11:38 AM by TrackBack

# re: The Data Mapping Application Block

I'm not a big EntLib fan. It's usually tries to be too much to too many.

I'll stick with either a simple 'roll-my-own' DAL, or a decent O/R Mapper.

Thursday, June 02, 2005 10:39 PM by Jerry Dennany

# re: The Data Mapping Application Block

Hehe, now you're just plain getting catty about other ORMs ;) (with good cause, mind you)

Friday, June 03, 2005 12:48 AM by Kent Sharkey

# re: The Data Mapping Application Block


"Of couse, if you follow all of Microsoft's 'guidance,' and are already using the Enterprise Library, then this is probably exactly what you have been dreaming about."

That cracks me UP!

Friday, June 03, 2005 1:46 AM by Jason Bunting

# re: The Data Mapping Application Block

Heh, I like the quote that they 'propagate stored procedures for best practises'... haha, noooo not for best practises, but for the fact that otherwise they've to write a real O/R mapper core, SQL engine, meta-data management etc...

Friday, June 03, 2005 3:44 AM by Frans Bouma

# re: The Data Mapping Application Block

Paul,

I'd be interested to hear more of you opinion on Microsoft's 'guidance'.

I recently created a 'roll-my-own' DAL. When I explain it to other people the biggest (perceived) problem seems to be "but that's not what Microsoft says we should do!"

Friday, June 03, 2005 4:06 AM by John Rusk

# re: The Data Mapping Application Block

I had a look at the DAAB a while back. While I can't verbalise what I didn't like about it, I developed a severe disliking for it, and it's turned me off looking at the Entlib stuff. I wish I could verbalise it, because it's something I'd like to be able to explain to others. If you have the interest, I'm keen to see you write more about this Paul - I'd also be keen to know what you thought about the other parts of EntLib. Cheers.

Friday, June 03, 2005 8:15 AM by Tim Haines

# re: The Data Mapping Application Block

Here's a few links to some critiques of various types (a few have comments from yours truly):

Yang Cao: http://spaces.msn.com/members/yangcao88
Chris Breisch: http://geekswithblogs.net/cbreisch/archive/2005/06/01/41360.aspx
James Snape: http://www.jamessnape.me.uk/MicrosoftPatternsAndPractisesEnterpriseLibrary.aspx
Steve Morgan: http://www.hastobe.net/PermaLink,guid,0479b173-13f9-4f88-9a17-9ac594aa9012.aspx

Sadly you won't find too many negative reviews since I suspect most of us don't need the bad press of going against the popular P&P.

Friday, June 03, 2005 9:44 AM by Paul Wilson

# re: Check out my "Real" NHibernate Example App

This is one of the few examples available about NHibernate, that actually represent something out of the real world.
But there's one mayor thing I don't like about the code. It is impossible to reuse the business model in some other form of presentation layer.
That is one of THE things you need when building extendable and maintainable applications.

Friday, June 03, 2005 10:17 AM by WillemM

# re: Check out my "Real" NHibernate Example App

Its definitely not intended to be a model for best practices. I actually thought about making it a little better in that regard, but I think it would make it harder to grasp the NHibernate usage for some that aren't as experienced.

Friday, June 03, 2005 10:30 AM by Paul Wilson

# re: The Data Mapping Application Block

I've come up with another critique of the DAAB. It goes like this:

1. Lay out, on a table, 8 pages of code from a sample application using the DAAB. (The DAL code itself, the stored procs, and the hand-written business entity classes)
2. Explain that this is the CRUD code for just one database table.
3. Now place on the table the same functionality, implemented in my 'roll-my-own' DAL. It's less than one page long.
4. Explain the extra features that my DAL gives, which are not in the DAAB example. (Optimistic concurrency control for starters.)

But, since the original 8 pages come from Microsoft, I suspect some people will remain unconvinced!

Saturday, June 04, 2005 5:34 AM by John Rusk

# re: How/Why I Added a Wiki for WilsonDotNet

I created my own wiki for a proof of concept on a project @ work not too long ago in 2.0 so I couldn't use FTB and instead tested with telerik's RAD editor. Either way, I was able to create the entire thing extremely fast including revision management and internal link transformation. Unforturnately, I couldn't convince certain people that this was a better way to manage the particular project than storing every single detail individualy in a database. Sigh.

Tuesday, June 07, 2005 7:50 AM by Chris Wallace

# re: The Data Mapping Application Block

The enterprise block just seems to be far to fat.. Written by academics. I read someweher most of these blocks started outside microsoft. The company i work at wont be using it .

1. Loging is slow and adding your own listeners requires 3 complicated classes. Yet the default .NET loging with Levels and Providers is not even that bad and is much faster.

2. The Caching one intrigued me for non web server hosted middle Tiers, again it is far over engineered. The Web.Cache cache for example is just as efficient (more ?) , used by 1000's of companies and has only a fraction of the code ( I decompiled it once)

3. The Configuration block is again far too complicated. Config files and Application.Configuration is not that bad !

4. If you want to use 1 part you have to use the rest !

Ben

Sunday, June 12, 2005 7:45 AM by Ben Kloosterman

# re: The Data Mapping Application Block

I have been looking into the source of some of these blocks and learn quite a bit from the EL folks. To be fair to Microsoft P&P team, here are my 2 cents thought on what I know and whether we should use any of these blocks in our apps.

1. All blocks depends on the Configuration block for dynamic loading of types and constructing them at run-time for the first time using Reflection, and then it not be reloaded again the next time you access it again. As of my current understanding, the Configuration block is the core of EL. This configurable architecture offers great flexibility and of course at much complexity. The question we should ask ourself is this; do we need this flexible configurable design in our apps? If yes, then you should look further into EL, otherwise, It's not likely to help you that much. I wish they could at least make it easier and simpler for customer to use.

2. There is this Common block required for all blocks. This block provides helper functions to support the infrastructure of all blocks.

3. There is also a Test Directory in almost every block for unit testing. You can remove them if you need to rebuild the block and make the DLL smaller.

4. Yes, the EL folks use DataSet and DataReader extensively for the DAAB which many of us is not a fan of because of the heavy duty stuffs that they carry. But hey, these folks work for Microsoft and it's natural that they promote Microsoft technology. So if DataSet is not suitable for your apps, the DAAB is not for you. Otherwise, do dive into the DAAB because it's quite a powerful and interesting block to apply to your apps.

5. Building a powerful, flexible, extensible and user-friendly framework is a challenging and tough cookie to swallow. So to be fair to Microsoft and the EL folks, their architecture is specifically aimed for the mass in a generic fashion. So when people compare a specific logging framework and say it is much faster, of course it is. Because you can twist and tweak to your liking becasue it's strictly designed to do just that. Remember, it's only about logging, you can not insert DAAB and make it works with the logging framework.

My point here is not to dispute whether we should use or not to use any blocks from EL. Even the Microsoft P&P team openly say that EL blocks are not suitable for some situations.

Sunday, June 12, 2005 11:21 AM by Thanh Quach

# re: How/Why I Added a Wiki for WilsonDotNet

I've had some issues as well with FlexWiki...
First I think their code doesn't really follow their own guidelines:

http://www.flexwiki.com/default.aspx/FlexWiki/DeveloperGuidelines.html

Also, they don't accept any code before you submit a non-assignment agreement, sent to the redmond headquarters itself 8-/

http://www.netindustry.nl/blog/2005/04/flexwiki-make-double-click-editing.html

Sunday, June 12, 2005 5:57 PM by Wiebe Tijsma

# re: How/Why I Added a Wiki for WilsonDotNet

I'm hoping to enlist your help in creating a VERY user friendly, an almost braille version, of a WIKI for teachers to use. Its purpose is to promote educational staff development and ultimately better educated children. You stated it took you roughly 30 minutes to create. I assume you have a fairly strong technical background and this is something I lack. I don't know what I don't know about website construction and the use of the internet as a means of educating employees. I do however see the power in a tool like this and am asking for your help or anyone else who reads this who would be able to point me in the right direction for that which I describe.

Monday, June 13, 2005 10:55 PM by Associate Principal

# re: Check out my "Real" NHibernate Example App

Very nice to see some more examples of nhibernate applications.

We are looking at nhibernate / borland's enterprise core objects (ECO II) and a number of other solutions and haven't really found anything that supports a really good distributed model that can be used say for a smart client application.

By this I mean it'd be nice to have a ORM that allowed me to host the domain model on an application server and access it via web services. On the client I'd like to have real objects (proxy) that allows me to make modifications and then commit my modifications using a web service.

Rich Strahl describes this requirement better:
http://west-wind.com/weblog/posts/368.aspx

Also I don't really want to transfer the entire object back over, just the difference. I need to be able to request my own transactions and just have the persistence engine behind the web service coordiate that for me... I don't know sounds like panacea right?

Wednesday, June 15, 2005 2:06 PM by CorbinH

# re: Check out my "Real" NHibernate Example App

Hi Corbin:

Most O/R Mappers (EntityBroker being the exception) assume that you will provide the plumbing for distributed apps, whether it be web services or remoting, just like you would in any other case -- and its not that much different, so I don't really see the problem.

Wednesday, June 15, 2005 2:23 PM by Paul Wilson

# is anyone using this sample app for sql 2005?

hiya,
If so, were you able to use the appConfig connection section "as is"?
I am experiencing connection probs :-(
If somemone can confirm that the conenction should work as is, then that'd be a help.

cheers

Friday, June 17, 2005 4:54 AM by yogi

# re: Check out my "Real" NHibernate Example App

It should just be a simple matter of getting the connection string correct -- especially if you have a named instance for Sql 2005.

Friday, June 17, 2005 7:02 AM by Paul Wilson

# re: Check out my "Real" NHibernate Example App

Thanks,
at least I know where I am going wrong.I have tried integrated security etc in the connString.Still no joy.

Could someone who is using the sample app with sql2005 email / post their nHibernate dbConn section?I apologise for this slightly off-topic :-(

cheers,
berriolas@yahoo.com

Friday, June 17, 2005 10:38 AM by yogi

# re: Check out my "Real" NHibernate Example App

Thanks for the 'real' example Paul.
Was beginning to doubt whether I'd find anything resembling a real-world scenario for nHibernate on the web.

Sunday, June 19, 2005 8:25 AM by Simon Stewart

# re: Craig Shoemaker's Polymorphic Podcast

Can we blame Skype and my recording rig and call it even ;)

Monday, June 20, 2005 3:43 PM by Craig Shoemaker

# re: Craig Shoemaker's Polymorphic Podcast

So Paul, when is the CD release party? :-)

Monday, June 20, 2005 4:30 PM by Travis

# re: Craig Shoemaker's Polymorphic Podcast

I listened to the podcast last night and thoroughly enjoyed it. Except for Skype cutting out a few times, I thought the quality was adequate. Great interview, and nice to put a voice with the face ;)

Tuesday, June 21, 2005 11:46 AM by David Neal

# re: Check out my "Real" NHibernate Example App

Thanks for the nice example.
But can you tell me, from where can i get the documentation on NHibernate.

Wednesday, June 22, 2005 8:35 AM by Wilson

# re: Check out my "Real" NHibernate Example App

Uh, my guess would be the NHibernate site.

Wednesday, June 22, 2005 9:26 AM by Paul Wilson

# re: Craig Shoemaker's Polymorphic Podcast

Paul,

The quality of the content was great! Don't worry about the quality of the voice.

The best part of the interview, IMHO, is that you are willing to say that your tools may not be the best choice for all programmers on all projects. I rarely hear that from tool vendors, which is why I look to others, like yourself, for tools.

Thanks!

Thursday, June 23, 2005 9:56 AM by Paul Schaeflein

# re: Check out my "Real" NHibernate Example App

Hi,Paul
Thanks for you work.
To Wilson
you can get the documentation at
http://wiki.nhibernate.org/display/NH/Home

Thursday, June 23, 2005 11:32 AM by Woody

# not be the best choice for all programmers on all projects

I agree with Paul Schaeflein. The killer argument for me to use WORM is still that ObjectSpaces might have some common syntax and features.
Paul are you willing to go into details and tell us what NHibernate has that WORM doesnt?
I know there is a lot, but are there some core things.

But please dont ask me to compare our product with competitors products ;-)

Friday, June 24, 2005 10:30 AM by Marc

# re: Craig Shoemaker's Polymorphic Podcast

I tried to note the main differences in this previous post:
http://weblogs.asp.net/pwilson/archive/2005/05/26/409042.aspx

Friday, June 24, 2005 10:37 AM by Paul Wilson

# re: Does anyone really know what they are missing until they try it?

Ok, since this is about me, I'll chime in and just ask if I am really suppossed to believe that ORM is appropiate for everything. ORM is a level of abstraction. Abstraction is good assuming it does not cause additional problems. ORM is not fruit. I would view ORM as more of a fruit bar. Is buying a fruit bar better for you than growing your own fruit? In a busy lifestyle, the answer is that it depends. Sometimes it makes sense to buy the fruitbar, sometimes it makes sense to buy the fruit. In my case, i took over an application that has a home built orm component. the hborm is VERY slow. Are all orm products as bad as the hborm that I am stuck with? No. Should I use orm everywhere? No.

BTW, I have to live with the hborm just about every day.

Due to the fact that I am currently onsite, my emails only go out about twice a day. As I said (will say) to Craig Shoemaker on the subject, I have added ORM to my list of things to look at, the problem is that there is not much time for the list.

Wally

PS. I hope that Paul doesn't take anything I saw out of context. Paul is a guru, more than I ever will be. He is someone that I have always respected and I will always respect. I have always considered him a friends since the day I meet him about 3 years ago. I will continue to do so. :-) He knows more about ORM (and many other technologies than I ever will). And I just love the google ads ont he right hand side of the post.

Wednesday, June 29, 2005 9:06 AM by Wallym

# re: Does anyone really know what they are missing until they try it?

Don't assume this was solely about you Wally. Sure you were part of my inspiration, but its been something I've been thinking about for a while due to similar discussions with others.

BTW, I totally agree that O/R Mappers, nor even just business objects for that matter, are NOT the answer for everything. I continue to use DataSets and Stored Procs where appropriate, although my O/R Mapper even makes that easy. To continue the analogy, fruit IS good for you, but it is also just one part of a well-balanced diet. And of course you can get even the fruit that you need from many different sources, whether it be a different kind of fruit, or maybe even fruit juice or a fruit-bar.

And Wally, please quit putting butter on my fruit. :)

Wednesday, June 29, 2005 9:24 AM by Paul Wilson

# re: Does anyone really know what they are missing until they try it?

I'd maybe suggest he tries vegetables, and argue that they are different to fruit, but they are still tasty and healthy, and he hasn't had a bad experience with them. Once he starts eating vegetables, I'd sneak in some tomatoes and cucumbers as they are actually fruit, but treated as vegetables.

Wednesday, June 29, 2005 10:38 AM by Simon Harriyott

# re: Does anyone really know what they are missing until they try it?

The suggestion that ORM's are like fruit implies that we need them to be healthy. If that were the case, wouldn't we all be dead at this point in our careers from not using them?

It's an interesting technology and technique, yes, but I've not encountered an instance where I need it. Some people will, some poeple won't. It's all good.

Wednesday, June 29, 2005 11:15 AM by Jeff

# re: Does anyone really know what they are missing until they try it?

You are right Jeff. The analogy does not imply that one must eat fruit -- its simply trying to say that it is typically part of a balanced diet and just because you feel fine and don't like one fruit shouldn't keep you from trying to get even healthier since you might like other fruits.

Wednesday, June 29, 2005 11:36 AM by Paul Wilson

# re: Does anyone really know what they are missing until they try it?

I don't understand why some people even bothered to switch to .NET in the first place. They probably were quite able to get everything done in regular ASP and VB6 to begin with. So why bother to switch to something just because it can make you more productive and yield code that's far more maintable?

Wednesday, June 29, 2005 11:42 AM by John

# re: Does anyone really know what they are missing until they try it?

So, does this make dblib like Doritoes?

Wednesday, June 29, 2005 11:50 AM by Jerry Dennany

# re: Does anyone really know what they are missing until they try it?

When I saw fruit for the first time I knew instinctively that it was very healthy. However, my first bite was absolutely disgusting, and made me sick also. These were early days though, and I hadn't read much about fruit, and certainly didn't know there was such a variety. Anyhow - even though my first experience was bad, and I choose a different variety - a species I saw in your orchid, and my second experience was wonderful. I use fruit in almost every meal I prepare now, and it makes the meal more delicious and nourishing for everyone.

Wednesday, June 29, 2005 6:54 PM by Tim Haines

# re: Sam Smoot discusses DataSets and O/R Mappers (and Fruit)

Woo Hoo! Someone read my blog! 'Tis such a special day. :)

Thursday, June 30, 2005 7:14 PM by Sam

# re: Sam Smoot discusses DataSets and O/R Mappers (and Fruit)

Now if only your blog didn't require an account to leave a comment. :)

Thursday, June 30, 2005 7:27 PM by Paul Wilson

# re: Wait a Minute -- Where is All the Code and Sql -- I Can't Find It

Ok, from the "my LOC is smaller than your LOC" boasting department, with my O/R tool all I have to write is this in one file:

table demo:category {
fields {
int id int notnull readonly [the ID];
string name nvarchar(30) notnull readwrite [the name];
};
pkey sequenced id;
# your example had a get of all categories so I need to provide such a get:
get multi {called all};
};

I know it's not XML, I wrote this before it was obvious that XML would be THE way to do these kind of things. To this day I haven't been able to find an XML syntax that can express all the same things that isn't painfully verbose in places.

Anyway, equivalents to your C# code:

// #1
CategoryGrid.DataSource = Category.GetByAll();

// #2
Category cat = new Category();
cat.Name = "Insert";
cat.Update();

// #3
Category cat = Category.GetById(id);
cat.Name = "Update";
cat.Update();

(notice just as with your version, once you've done the create or get, the code is identical regardless of whether it's an insert or an update. This is nice in ASP.NET because you can do the get-or-create conditionally in your Page_Load and then just call .Update() in your _Click)

// #4
Category cat = Category.GetById(id);
cat.Delete();

// #5 (this one's less efficient, but easier to understand when reading it; also it's a corner case, at least in the kind of stuff I do)
foreach (Category cat in Category.GetByAll) {
cat.Delete();
}

By the way, I'm guessing from the fact that your XML doesn't contain enough information to create the table itself that you have to do that by hand? You should also include a CREATE TABLE statement in your "necessary lines of code". Mine creates the table (and indexes it based on what gets you specify, and puts in foreign keys etc) for me. And updates it when the definition file changes.

http://savannah.nongnu.org/projects/nrdo :)

Ok, the downside (and it's a fairly big one) is that the total set of users of nrdo is pretty much me and my company. The documentation is limited and naturally it only gets testing in a limited number of configurations. It also has some quirks and its error messages aren't exactly clear most of the time.

I just wish I could figure out how to convince people that it's actually kind of cool and it would be nice if they'd use it and contribute fixes to some of those problems...

Thursday, June 30, 2005 11:48 PM by Stuart Ballard

# re: Sam Smoot discusses DataSets and O/R Mappers (and Fruit)

Really? I had no idea... are there any better free hosts out there?

Friday, July 01, 2005 2:25 PM by Sam

# re: Wait a Minute -- Where is All the Code and Sql -- I Can't Find It

nrdo seems nice, but you loose a lot of apeal at the door steps by choosing GPL license...

Friday, July 01, 2005 2:34 PM by Srdjan

# re: Wait a Minute -- Where is All the Code and Sql -- I Can't Find It

Note that the GPL only applies to the tools (in other words, if you fix or enhance the tools, I'd like the fixes back).

The runtime libraries are licensed under the LGPL which allows them to be linked into any application, under any license, without any obligation except to make the source to the library available - which I'm already doing for you. My own company uses nrdo in a proprietary application - there's no obligation to make the source of your app available.

Saturday, July 02, 2005 1:00 PM by Stuart Ballard

# re: Does anyone really know what they are missing until they try it?

I'm currently working on an open source project (with legacy code) that uses the provider model to abstract away data access. There's one table in particular that uses around 10 stored procs to grab records from it and display it in a variety of ways.

I recently added a couple columns to that table, modified 10 stored procs and all the methods that call those stored procs. Luckily we only have one concrete provider, otherwise I'd have to make the corresponding changes in every single one.

This has pretty much convinced me of the efficacy of tools such as yours. Now its a matter of finding one that works well with an open source project.

Sunday, July 03, 2005 1:32 PM by Haacked

# re: Wait a Minute -- Where is All the Code and Sql -- I Can't Find It

well, that is nice to know - thanks for the explanation...

p.s. Paul, sorry for digresing

Sunday, July 03, 2005 3:22 PM by Srdjan

# re: Family Update -- Jenny is Cancer Free

That's fantastic news, Paul! It's good to hear your wife's going to be Ok.

Saturday, July 09, 2005 5:19 PM by Jeff Perrin

# re: Family Update -- Jenny is Cancer Free

Congratulations to all!

Saturday, July 09, 2005 5:31 PM by Wallym

# re: Family Update -- Jenny is Cancer Free


That's great news! Best wishes.

Saturday, July 09, 2005 6:05 PM by Plip

# re: Family Update -- Jenny is Cancer Free

Paul! That is amazingly fantastic news! I'm so happy for you and your family. Wahoo!

Saturday, July 09, 2005 7:20 PM by Tim Haines

# re: Family Update -- Jenny is Cancer Free

Best news I've heard in a while. Congratulations to you and your family Paul!

Saturday, July 09, 2005 11:04 PM by Alex James

# re: Family Update -- Jenny is Cancer Free

Congratulations, paul, good luck

Sunday, July 10, 2005 12:51 AM by Kevinzc

# re: Family Update -- Jenny is Cancer Free

Your blog post put a smile on my face, Paul. I'm thrilled you and your family have some wonderful things going on. Cheers!

Sunday, July 10, 2005 2:15 AM by Terri Morton

# Re: Family Update -- Jenny is Cancer Free

Great News Paul!

Sunday, July 10, 2005 4:35 AM by Christopher

# re: Family Update -- Jenny is Cancer Free

Great news, man! :D

Sunday, July 10, 2005 6:17 AM by Frans Bouma

# re: Family Update -- Jenny is Cancer Free

Fanstastic news!

Sunday, July 10, 2005 7:42 AM by Robert Hurlbut

# re: Family Update -- Jenny is Cancer Free

Great to hear about your wife! I know that a lot of people aren't entirely comfortable sharing stuff about their personal lives online, but doing so really makes people in our community seem more human and, well, interesting. Not that O/R mapping isn't interesting. ;)

Again... great news!

Sunday, July 10, 2005 12:30 PM by Jeff

# re: Family Update -- Jenny is Cancer Free

Great news!

God Bless you and your family.

Sunday, July 10, 2005 10:29 PM by Chris Ongsuco

# re: Family Update -- Jenny is Cancer Free

That is fantastic news! I'm glad to hear you are all doing well.

God bless,
David

Sunday, July 10, 2005 11:15 PM by David Neal

# re: Family Update -- Jenny is Cancer Free

That's great! All the best.

Monday, July 11, 2005 3:20 AM by Mikhail

# re: Family Update -- Jenny is Cancer Free

Great news! Congrats!

Monday, July 11, 2005 4:35 AM by Dennis van der Stelt

# re: Family Update -- Jenny is Cancer Free

Great news Paul!....

Monday, July 11, 2005 12:41 PM by Stephen Patten

# re: Family Update -- Jenny is Cancer Free

I actually burst into tears when I read this post. I'm truly thrilled for your family.

Monday, July 11, 2005 1:22 PM by SomeNewKid

# re: Family Update -- Jenny is Cancer Free

This is really exciting news... I'm really glad you shared it with all of us, as myself (and I suspect many others) had been wondering in silence as to her health.

Monday, July 11, 2005 3:42 PM by David Dimmer

# re: What's Up with 2 Custom Collection Articles in MSDN ?

Karl's article is really good, I've heard that some people didn't like it because it didn't put custom entities against typed-datasets, only untyped..but people didn't understand it wasn't about pitting anything against anything, it was just an introduciton.

Dino's does a great job of comparing :)

Tuesday, July 12, 2005 12:15 PM by notKarl

# re: Issues with FireFox v1.0.5 -- And their Lack of Openness

Hmmm, I guess that is why there is not Firefox 1.0.5 for those us running 1.0.4.

Sunday, July 17, 2005 3:35 PM by Wallym

# re: Issues with FireFox v1.0.5 -- And their Lack of Openness

I have no probs with 1.0.5.

Perhaps some extension is messing up?

Sunday, July 17, 2005 5:47 PM by Frans Bouma

# re: Issues with FireFox v1.0.5 -- And their Lack of Openness

I didn't have any problems either for a while, nor did many of the other people that have reported similar issues -- so good luck. :) Seriously, I don't know if its guaranteed to eventually strike everyone or not, but it is certainly occurring at some point later than installation for some of us.

Sunday, July 17, 2005 9:39 PM by Paul Wilson

# re: Issues with FireFox v1.0.5 -- And their Lack of Openness

Hi Paul

I had similar problems with an earlier Firefox update (1.0.3 I think) and the User Agent Switcher extension. Things worked OK immediately after the update and then it died a few days later.

The solution was to start Firefox in Safe Mode (see the Mozilla Firefox start menu folder for this shortcut) and then disable all extensions.

It's a bit painful, but I enabled each extension individually, closed safe mode Firefox and re-opened normal Firefox until I found the offending extension.

Once I found it, uninstalling and then installing it again fixed it.

Sunday, July 17, 2005 11:37 PM by Dario Mratovich

# re: Family Update -- Jenny is Cancer Free

Paul -

It's always good to hear news like this. It's also great that you've been spending time with your family, there's really nothing more important than that.

Monday, July 18, 2005 1:45 AM by Jerry Dennany

# re: Issues with FireFox v1.0.5 -- And their Lack of Openness

Frans is right, I would bet it is an extension too, do Start/Run with firefox -p, that will allow you to setup and change to a new profile which will have no extensions, see if you get the same problem.

Monday, July 18, 2005 2:25 AM by Daren

# re: Issues with FireFox v1.0.5 -- And their Lack of Openness

please check your extentions they hang fire fox sometime,do a clean install

Monday, July 18, 2005 3:46 AM by am

# re: Issues with FireFox v1.0.5 -- And their Lack of Openness

The same thing happens in 1.0.4 for me. It seems to be related to plugins. Generally, closing the browser then re-opening it once or twice will fix the issue for a while.

Hopefully the fix will be released soon as it really is the only issue I've ever had with it.

Monday, July 18, 2005 4:46 AM by Kevin Ansfield

# re: Issues with FireFox v1.0.5 -- And their Lack of Openness

Well I'm not going to go back and try the previous version right now to see if it could in fact just be extensions -- so you may be right. But take a look in the Mozilla forums, and elsewhere, and you'll see that there are many (far more knowledgeable than I) that feel this is a bigger issue with v1.0.5. And the fact is that the Mozilla team has told those working on localization to wait for v1.0.6 since v1.0.5 is so bad -- although they aren't very open on just what is so bad, nor do they seem to respond to those making claims like mine. And its this type of "support", which I've heard others mention on more than one occasion about other issues, that is going to make it hard for FireFox to be useable by the common non-techie. And don't get me wrong -- I'm not a MS drone -- I've been using FireFox, got my family using it, and recommend it to my friends -- but this type of things makes me wonder if that was the right decision.

Monday, July 18, 2005 9:08 AM by Paul Wilson

# re: Issues with FireFox v1.0.5 -- And their Lack of Openness

Monday, July 18, 2005 10:55 AM by Wallym

# re: Issues with FireFox v1.0.5 -- And their Lack of Openness

The general outrage mentioned in that News.com article kind of gets to what I perceive as a weakness to open source stuff. You didn't pay for it, so what right do you have to complain? I mean, I complain about Microsoft from time to time and they don't necessarily respond, but at least I have someone to bitch about. :)

Monday, July 18, 2005 11:11 AM by Jeff

# re: Issues with FireFox v1.0.5 -- And their Lack of Openness

Monday, July 18, 2005 7:16 PM by jayson knight

# re: Yet More FireFox Issues -- This Time With v1.0.6

I've had Firefox quit working on me in the past (the empty content pane problem), and what worked for me was to uninstall and remove the \Documents and Settings\...\Application Data\Mozilla\Firefox folder and reinstall. If you haven't tried that, it may be worth a try.

Wednesday, July 20, 2005 5:08 PM by Daniel Auger

# re: Yet More FireFox Issues -- This Time With v1.0.6

Yea -- that did the trick. Of course I didn't do anything except rename the extensions folder, and I also backed up my bookmarks even then. But it does work now -- you're my hero Daniel!

Wednesday, July 20, 2005 6:10 PM by Paul Wilson

# re: FireFox v1.0.6 Now Working -- Thanks to Daniel Auger

Great! I'm happy to see that you saved your bookmarks. Unfortunately, I left that part out of my solution (just a minor detail (ya right ;) ). I'm glad I could be of help.

Wednesday, July 20, 2005 8:17 PM by Daniel Auger

# re: Yet More FireFox Issues -- This Time With v1.0.6

Life is simple. People insist on making it complicated.

-- Confucious.

Use IE

Wednesday, July 20, 2005 11:40 PM by Steve Jobs

# re: Customers Ask for "Xml Projects" in VS Next -- Huh ?

Not that I was asking, but I would assume that people are asking for XMLSpy-like functionality built into VS.NET.

Wednesday, July 27, 2005 8:41 PM by Jerry Dennany

# re: Customers Ask for "Xml Projects" in VS Next -- Huh ?

You're probably right, but what I thought was even funnier than the request was that the MS guy wasn't sure himself. It reminds me of the jobs I see advertised wanting 5 years of Xml experience. :)

Wednesday, July 27, 2005 8:59 PM by Paul Wilson

# re: Issues with FireFox v1.0.5 -- And their Lack of Openness

Yup, thanks for your comments. The same just happened to me in v1.0.6. Bringing it up with a "no extensions" profile fixed it.

Friday, July 29, 2005 2:57 PM by beegee

# re: Tim Haines is putting up $150 to get some AJAX brainstorming underway

Actually I've thought about doing that before, but thought that it's kinda cruel to dangle that tiny little carrot for brain trust <g>...

That said though content coming in through BLOG comments tends to be just as valuable as the actual content in many entries and this is one way to bring more traffic and input. It's a clever idea.

Tuesday, August 02, 2005 4:25 PM by Rick Strahl

# re: WilsonORMapper v4.1 Released -- Includes support for Medium-Trust

Hey Paul,

I was wondering what some of these things mean. I see you've answered clarified some points in your forum - a link for those who'd like a more details:-
http://www.wilsondotnet.com/Tips/ViewPosts.aspx?Thread=1372

Wednesday, August 03, 2005 7:10 AM by Tim Haines

# re: Tim Haines is putting up $150 to get some AJAX brainstorming underway

What a cool publicity stunt! Generates traffic, hopefully some cool ideas... It's a "can't loose" situation, I think.
J#

Thursday, August 04, 2005 12:53 PM by Jonas Antonsson

# re: ASP.NET Simplicity -- When Is Too Much Simplicity a Bad Thing

I totally agree. I absolutely hate quoting him, but a lot of this is the "law of leaky abstraction".

Wednesday, August 10, 2005 9:57 AM by karl

# re: ASP.NET Simplicity -- When Is Too Much Simplicity a Bad Thing

I am an ASP.NET enterprise developer, have been for the last 4 years or so, and I have no problem with the lack of project files. In fact, I like it. Websites are a different beast and by trying to mold them into the standard project idea alot of mistakes were made. Sure you could "exclude" files from a project, but chances are half the time they still got deployed. Not only is that not the expected behavior, but it could be a security risk. What can't you do with the new model? (truthfully they should have done both, but still curious what you specifically don't like about the new model)

Agree 100% on the CSS and postback issue.

Wednesday, August 10, 2005 10:38 AM by James Avery

# re: ASP.NET Simplicity -- When Is Too Much Simplicity a Bad Thing

I don't see what the problem is. You are always free to write your own custom control library with your custom post-back handling scheme. You can always use AJAX.Net if you want to bypass post-back alltogether. If you don't like the way MS handles CssClass, simply inherit the control and override the way it renders. What's the big fuss? You have to write a little bit of extra code? Well, do it and put it into an open source project so everyone can reuse it. I just don't get it. If it sucks, don't use it (controls).

Wednesday, August 10, 2005 10:48 AM by Charles Chen

# re: ASP.NET Simplicity -- When Is Too Much Simplicity a Bad Thing

Thanks for this post. All of these things really really bug me about ASP.NET, particularly the stuff about style properties in code. I wish the framework forced new developers to use best practices instead of encouraging sloppiness like compiling colour properties. I'm really disappointed they didn't get the Web Part stuff right - I've dealt with the Sharepoint web parts and the tag soup they produce and was really hoping they would spend the time to get it right in 2.0.

I was at an MS Developers conference in Las Vegas last year and at the keynote, they mentioned xhtml support in 2.0. They asked the audience who was excited about this, and I was one of maybe 5 people in 200 who put up their hand.

Wednesday, August 10, 2005 11:00 AM by dylan

# re: ASP.NET Simplicity -- When Is Too Much Simplicity a Bad Thing

IMO, regarding web projects, they should keep the traditional approach for Visual Studio, and apply the new model only to the Express versions.
The Express versions of VS are really for different users, and so I can understand they work differently in the name of simplicity.

Wednesday, August 10, 2005 11:03 AM by Fabrice

# re: ASP.NET Simplicity -- When Is Too Much Simplicity a Bad Thing

I'm with Paul in many respects.

It feels as though much of the ASP.NET Framework has been built to make life easier, but generally, it's only easier for the people out there who are not real developers.

The hype about 70% less oce, great, but in practice, as soon as you need to do anything off the beaten path you have to break out the books and write the code.

Wednesday, August 10, 2005 11:06 AM by Plip

# re: ASP.NET Simplicity -- When Is Too Much Simplicity a Bad Thing

Just to be clear, the current version of the moderation tool does not suffer from this issue despite using the postback model. The control that renders the moderation menu was rewritten for the latest version on forums.asp.net and does not have an issue with control placement (even though it continues to use the postback model).

Wednesday, August 10, 2005 11:20 AM by Alex Lowe

# re: ASP.NET Simplicity -- When Is Too Much Simplicity a Bad Thing

James has asked for a list of things "wrong" with the project-less system. I've seen quite a few blog posts that you can search for, but I decided to compile a quick list from the MSDN Feedback Center itself. Most all of these are serious issues for many of us, and they were standard approaches supported by the original project file -- now they are all broken and MS simply gets to say its by design and/or postponed:

http://lab.msdn.microsoft.com/productfeedback/viewfeedback.aspx?feedbackid=d3e01fc5-f341-443e-8bb7-9acfa0ebb78c
http://lab.msdn.microsoft.com/productfeedback/viewfeedback.aspx?feedbackid=4052b0c1-e0e3-4c3e-b911-48d393c8becc
http://lab.msdn.microsoft.com/productfeedback/viewfeedback.aspx?feedbackid=c93a36b3-58b3-49ef-b470-a677b60cbde7
http://lab.msdn.microsoft.com/productfeedback/viewfeedback.aspx?feedbackid=4f6fd532-a225-478e-af14-f6f67c622137
http://lab.msdn.microsoft.com/productfeedback/viewfeedback.aspx?feedbackid=1ed12cfd-b84c-474c-b244-d23249e115d1
http://lab.msdn.microsoft.com/productfeedback/viewfeedback.aspx?feedbackid=223db315-1c45-4593-88f2-9abb2121988e
http://lab.msdn.microsoft.com/productfeedback/viewfeedback.aspx?feedbackid=fc2e388b-0f1b-4b01-a95a-c2c2fea7cbea
http://lab.msdn.microsoft.com/productfeedback/viewfeedback.aspx?feedbackid=84ab7f2f-bdcd-4e66-acaa-8c57dc016254
http://lab.msdn.microsoft.com/productfeedback/viewfeedback.aspx?feedbackid=179444c5-3a4a-4547-99b7-7792cec85a5e
http://lab.msdn.microsoft.com/productfeedback/viewfeedback.aspx?feedbackid=bb113975-9dd1-45ab-ae4c-d3426614fe46
http://lab.msdn.microsoft.com/productfeedback/viewfeedback.aspx?feedbackid=02d31a3d-7f88-4ec4-b7bf-0487f11721ae
http://lab.msdn.microsoft.com/productfeedback/viewfeedback.aspx?feedbackid=26af74fa-e0ee-4159-a034-4c4a812160ea

There's also more I didn't find real quickly, like pre and post build events and build configurations. True enough you won't encounter these things in simple projects, but they are truly quite common in larger complex projects.

Wednesday, August 10, 2005 11:22 AM by Paul Wilson

# re: ASP.NET Simplicity -- When Is Too Much Simplicity a Bad Thing

Yeah, once again another agreement here.

The projects can be got round by creating class library projects and setting various properties and tweaking the VS install, documented elsewhere. I'm not sure how the commenter who claims to be an Enterprise dev said it's not a problem for him, perhaps he doesn't have source control or staging servers.

As for the ASP web controls, I gave up with them long ago and use the Generic Html controls and in doing so got rid of the postback data too. My main reason at the time was not just the poor styling without CSS but also the lack of XHTML compliance and dubious downgrading to other browsers. By switching to the System.Web.UI.HtmlControls stuff I can do pretty much what I like. Sure you loose the database stuff but I'm normally dealing with objects anyway and you can re-populate fields and current settings in Page Prerender along with the localisation code.

[)amien

Wednesday, August 10, 2005 11:25 AM by Damien Guard

# re: ASP.NET Simplicity -- When Is Too Much Simplicity a Bad Thing

One of the solutions to this issue floating around the blogosphere is to use class library projects. If you use class library projects, can you get design support for the ASP.NET 2.0 MasterPages?

Wednesday, August 10, 2005 11:36 AM by Weston M. Binford III

# re: ASP.NET Simplicity -- When Is Too Much Simplicity a Bad Thing

Alex is correct -- I was mistaken in fact, but not principle. :) Some of the links now include the keys, and some do not so I poorly assumed the problem continued. Anyhow, I just checked, and Alex is correct -- because the data is now in ViewState ! And that's why I say I'm not wrong in principle, since I didn't expect to see the data in viewstate. I guess the fact that its the moderation page makes it less of a problem, but its still a work-around to some less-than-optimal default solution.

Wednesday, August 10, 2005 11:41 AM by Paul Wilson

# re: ASP.NET Simplicity -- When Is Too Much Simplicity a Bad Thing

Like I said before, I think they should have done both methods, but truthfully most of the "bugs" people talk about are not major things and are more a shift in mentality than anything.

The guy with the file reference doesnt understand how references currently work in VS. No enterprise developer I know would add a reference to a file in some arbitrary place on his system, it should be copied local or to a general share used by everyone. Its a shift in method, but I dont see it as a huge deal.

Not being able to create a reference to a web project doesnt seem like a huge deal to me either, if you have functionality in there that you want other assemblies to use chances are that functionality should be in a class library and not your web project. (You could still pre-compile the project for code-gen type of stuff if you wanted)

The loss of pre and post build events is a bummer, I was hoping they would create a workaround for that perhaps through the solution file.

There will be issues with any change like this, but I think there are benefits as well. A web site is now treated like a web site as opposed to having a project that may or may not be a fair representation of what you want to deploy.



-James

Wednesday, August 10, 2005 11:42 AM by James Avery

# re: ASP.NET Simplicity -- When Is Too Much Simplicity a Bad Thing

A month or so ago, Betrand Leroy blogged about the AJAX.Net vs Client Callback differences, and said something that really stood out

"I think the main reason for this difference in the expectations and what we delivered is that we tend to think as control developers, whereas most of our users think as application or page developers."

I've often wondered how broad the implications of that statement were (and wtf they were doing to correct it).

Wednesday, August 10, 2005 11:45 AM by Karl

# re: ASP.NET Simplicity -- When Is Too Much Simplicity a Bad Thing

Do not forget to vote and comment on the bug forms in the MSDN Feedback Center to let Microsoft know what you think about the new problems. If you don't, there is no chance they get fixed.

Wednesday, August 10, 2005 11:50 AM by Fabrice

# re: ASP.NET Simplicity -- When Is Too Much Simplicity a Bad Thing

Lack of project files is a drag - I feel like functionality has been taken away from me to accomodate junior developers.

Frankly, I consider most Click-n-Drool stuff in Visual Studio to be detrimental. It's really great for WebForms and WinForms GUI development, but I worry when I see a project where a developer has dragged a PerformanceCounter object, or a 'SQLConnection1' object onto a WinForm, I know that we are in for trouble.

It looks great in a demo, but generates code like: this.sqlConnection1.ConnectionString = "workstation id=\"DENNANY-J1-2K3\";packet size=4096;integrated security=SSPI;data so" +
"urce=\"(local)\";persist security info=False;initial catalog=Northwind";

What a mess.

Wednesday, August 10, 2005 12:08 PM by Jerry Dennany

# re: ASP.NET Simplicity -- When Is Too Much Simplicity a Bad Thing

Paul also agree with you. As a real developer I struggle with the Beta 2 to implement an existing solution with multiple projects. The problem for me reside in the fact that VS2005 Beta 2 is more a Beta 1. I have as a proof the latest post by Scott Guthrie about a new version of the migration tool. So it means they are still working on adding and debugging new stuff which shouldn't be the case in a real Beta 2 (if you remember that the official launch is in 3 months!). I really find incredible the fact that they remove the Exclude from project feature without checking with the real world what could this damage. And I also add that the setup is too slow and too complex, you even get a different experience from different PCs. I found myself struggling 4 or 5 times on some machines to get the tools installed, on some other no problem at all.

Wednesday, August 10, 2005 12:10 PM by Paschal

# re: ASP.NET Simplicity -- When Is Too Much Simplicity a Bad Thing

I would like also to add that very few professional writers or speakers are really talking about the conversion. Most of the resources you find on the web are about new cool stuff in ASP.Net 2.0 but not really about how to make my .Net 1.1 moving to the next level. I don't even know one article talking about .Net 2.0 and SQL 2000! All are written using SQL 2005 and in many cases by Windows developers. And in real world development my bets are that 90% of enterprises will keep their current SQL software untouched for the next 6 months! And as you say Paul ASP.Net 2.0 is too complex as it is. The learning curve is very steep and I don't really know how many months it will take to be at ease with the new framework.

Wednesday, August 10, 2005 12:16 PM by Paschal

# re: ASP.NET Simplicity -- When Is Too Much Simplicity a Bad Thing

Talking about complexity, I am really concern also by the return of the spaghetti code. We are all preaching since ASP died to separate HTML from code and now Microsoft is doing a huge step backward (For exanple the declaration of connection string in the front-end ?!?). Of course I heard the argument that this will help the beginners but how if they don't know the good practices from the beginning?.

Wednesday, August 10, 2005 12:20 PM by Paschal

# re: ASP.NET Simplicity -- When Is Too Much Simplicity a Bad Thing

And for the record, I agree completely with you in principle. =)

Wednesday, August 10, 2005 12:37 PM by Alex Lowe

# re: ASP.NET Simplicity -- When Is Too Much Simplicity a Bad Thing

James> I was hoping they would create a workaround...

We don't need no stinkin' workarounds.
This is how it looks today: a lot of features have been removed, and MS is trying to put them back under pressure as workarounds.
I think there was no need to change the model in the first place and lose so many features.

A web project may be a specific kind of project, but a project nonetheless. Which means web projects should offer the same support other projects do.

Wednesday, August 10, 2005 1:59 PM by Fabrice

# re: ASP.NET Simplicity -- When Is Too Much Simplicity a Bad Thing

I'll agree on your second point. On the third, I think you're placing the responsibility in the wrong place. If you want to pass in the right data for the postback, do so with the CommandArgument and CommandName. That's not Microsoft's fault.

And on your first point, well, I'd like to think I'm an "enterprise developer," and I've not run into any issues yet from having a folder-based project.

Wednesday, August 10, 2005 3:54 PM by Jeff

# re: ASP.NET Simplicity -- When Is Too Much Simplicity a Bad Thing

I agree with Pauls original statements. I think there's a ton more in ASP.NET 2.0 and Visual Studio that follows this same model - provide some high visibility feature, make it easy to work for demos, then leave out some key features that people really need once they build real applications. Lots of stuff in 2.0 like this. Localization and Resources is another that absolutely blows me away. The Pre-Compiler which has made deployment an absolute mess. Script Callbacks with its minimalist approach. The list goes on and on. Sure there's lots of good stuff too, but so many of the features just fall short of being truly usable in day to day development that you won't be able to actually utilize them in your apps and create your own.

Oh and Charles - yeah, you can write your own, but the folks at Microsoft should be good enough to know their customers to know what's needed. The ASP.NET team's been pretty arrogant about how they position ASP.NET 2.0 as faster, better, cleaner, easier etc. when in fact this may turn out to be a big myth... Workarounds are OK for a product that has matured. Workarounds for a product that haven't even shipped is pathetic especially if you go to Feedback center and review many suggestions and Microsoft themselves posts solutions as 'workarounds'. That's a pretty sad state of affairs...

Wednesday, August 10, 2005 4:14 PM by Rick Strahl

# re: ASP.NET Simplicity -- When Is Too Much Simplicity a Bad Thing

Hey Jeff:

You are correct that its not required for you to fall into bad practices, but my point is that the big timesavers and default options tend to lead those that use them to poor practices when used on anything but the simplist of web apps. Is that MS's fault? Not completely, and I agree that there is a huge market that actively needs this type of simplicity -- so I'm glad I'm not in MS's shoes when its time to decide such things. But its also very telling that even some of the better MS developers, on one of the most visible web apps, fell into these very problems, and that it took quite a long time to get them fixed (and even now some things aren't great).

Now Jeff and James:

As for "enterprise developers" that haven't encountered these issues, (1) the argument that I haven't had a problem doesn't really add any value since there are obviously many that are having such problems, and (2) you almost seem like you want to get into a "my app is bigger than yours" argument so that you can then be called the real "enterprise developer" here, and finally (3) you really are beginning to sound like "MS drones" saying that "MS can do no wrong". I realize these may not be your intent, so please don't take offense, but take a step back and look at what you're saying.

Wednesday, August 10, 2005 4:17 PM by Paul Wilson

# re: ASP.NET Simplicity -- When Is Too Much Simplicity a Bad Thing

Paul,

I agree with you on most of this. In your first point, however, I disagree that the project-less nature of ASP.NET is not a problem for 99% of developers. In my opinion, it is a problem for many devs.

One thing I loved about getting into .NET from the ASP.old world is the fact that it made web app development much closer to smart client development. Now it seems that isn't as much the case.

Wednesday, August 10, 2005 5:33 PM by John Walker

# re: ASP.NET Simplicity -- When Is Too Much Simplicity a Bad Thing

Folks, you got to remember that the target audience for ASP.Net was for vb6 developers who dreamed of writing webapps but didn't want to know anything about markup or asp developers who were pasta magicians.

ASP.Net developers were never supposed to access the document dom themselves or peek at the markup, their vb6 developers for crying out loud or vbscript developers who couldn't write anything but spaghetti code - right?thats what Microsoft kept hearing when they asked for feedback.

Thats why we have what we have.

Things that were hard for newbies are easy, things that were easy for experts now become more difficult.

I have to believe the standard page and controls simply aren't meant for everybody.

Nothing prevents you from throwing all that away and doing your own architecture.

Wednesday, August 10, 2005 5:48 PM by Dave Tigweld

# re: ASP.NET Simplicity -- When Is Too Much Simplicity a Bad Thing

Get more pretty pictures == get less flexibility and good coding styles.

ASP.NET's been controlled mainly by marketeers as it seems. I mean... who cooked up that design time databinding system? And that new project system? Ever payed a visit to a 100-person enterprise dev team? ...

I agree with you Paul, something is seriously wrong. There are nice new features, but these new features mainly shine in demos and in books, not in enterprise apps.

Wednesday, August 10, 2005 6:01 PM by Frans Bouma

# re: ASP.NET Simplicity -- When Is Too Much Simplicity a Bad Thing

Someone needs to start a petition for a beta 3 or .Net 2.0. Maybe a suggestion should be submitted to the product feedback center.

Wednesday, August 10, 2005 8:15 PM by seadog

# re: ASP.NET Simplicity -- When Is Too Much Simplicity a Bad Thing

Paul: You're making a lot of ridiculous assertions about me based on two sentences. I'd rather you didn't do that.

Wednesday, August 10, 2005 9:45 PM by Jeff

# re: ASP.NET Simplicity -- When Is Too Much Simplicity a Bad Thing

Agree I am on a petition for a Beta 3. It make sense when you see all the latest changes in community preview releases.

Thursday, August 11, 2005 4:28 AM by Paschal

# re: ASP.NET Simplicity -- When Is Too Much Simplicity a Bad Thing

Paul, I have been harping on some of the same things. I've been blogging about these topics for a while. VS 2005 isn't ready. My shop at Pluck has fully deprecated v1.1. www.pluck.com and www.shadows.com are running on ASP.NET 2.0 Beta 2, so I'm in the trenches with this new product. The new web "sites" REALLY suck, and I hate them. The good news is that I've been able to "pursuade" VS 2005 into letting me use a class library project for web apps without any sacrifice of the IDE's features. I believe I'm going to start advocating a Beta 3.

James, I know you, but you _have_ to be smoking crack if you like the new web projects. Here's a challenge for you: Make a web site, reference the Log4Net library. Create an NAnt build/deploy script for this. Check it all into Subversion (don't check in the Bin folder - which should be common sense). Go to a build machine, pull down the project from source control and run the build/deploy script. Then try to run the app on a web server. What? It didn't work. That, my friend, is what's wrong with the lack of a project file. Class library project in VS 2005 - no problem.

Thursday, August 11, 2005 9:01 AM by Jeffrey Palermo

# re: ASP.NET Simplicity -- When Is Too Much Simplicity a Bad Thing

Well all this sounds really promising as an upgrade path.

But at least the designer won't rewrite my HTML anymore right? Please tell me that at least works?

Thursday, August 11, 2005 10:17 AM by Joshua Bloom

# re: ASP.NET Simplicity -- When Is Too Much Simplicity a Bad Thing

Jeff,
Things are different that is for sure. You can't deploy like you used to, I agree with that. In your scenario some extra work needs to be done to make sure dependent assemblies are checked into source control and referenced by your build script, but in the end you actually have a cleaner deploy scenario. I prefer having explicit control over what is deployed.

Paul,
I am not trying to be better than anyone and I am not a "MS drone". It's a sad day where you can't state your opinion on something without the accusations flying. I have said in each of my posts I think they should have implemented both models and I stand by my OPINION that the web site model is a better representation of what will be deployed on the server. But I will say it again, they should have implemented BOTH models then we wouldnt be having these conversations and people could use whatever model they prefer.

-James

Thursday, August 11, 2005 10:40 AM by James Avery

# re: ASP.NET Simplicity -- When Is Too Much Simplicity a Bad Thing

WebSites in ASP.NET ARE Class Libraries. James if you think differently you are mistaken. They get compiled into dlls.

Microsoft could have EASILY broken the IIS dependancy without removing the project file.
I agree with the sentiment, they made ASP.NET 2.0 for mom and pop hobbyists instead of Enterprise application developers. I don't even see the point of using 2.0 given its current state.

Thursday, August 11, 2005 10:41 AM by Jeff Gonzalez

# re: ASP.NET Simplicity -- When Is Too Much Simplicity a Bad Thing

Palermo,
I almost forgot, some of those deployments issues will be fixed when nant is updated for 2.0. As it stands the project task doesnt support the new solution format right? This means it can't pick up where the references are stored.

Thursday, August 11, 2005 10:45 AM by James Avery

# re: ASP.NET Simplicity -- When Is Too Much Simplicity a Bad Thing

"WebSites in ASP.NET ARE Class Libraries. James if you think differently you are mistaken."

Well, they eventually get compiled into assemblies on the server but you still deploy .aspx files to the server which makes them a very different beast all-together.

Thursday, August 11, 2005 11:00 AM by James Avery

# re: ASP.NET Simplicity -- When Is Too Much Simplicity a Bad Thing

Thursday, August 11, 2005 11:40 AM by Eric Newton

# re: ASP.NET Simplicity -- When Is Too Much Simplicity a Bad Thing

In addition, if ASP.Net can support both styles, then we've got a winner. Project based "class library" ASP.Net running on the mini web server is perfect for enterprise developers.

Thursday, August 11, 2005 11:42 AM by Eric Newton

# re: ASP.NET Simplicity -- When Is Too Much Simplicity a Bad Thing

I'm pretty slow on the uptake BUT....

wouldn't the void caused by the loss of a project file be filled by an msbuild file? (or for now an NAnt build file). I mean, most of what is being talked about in a project file (dependancies, pre/post build events) could be done in a build file right?

Or did I miss a memo between versions and I don't know that they've cut MSBuild from Whidbey? Is the build file the new project file and that's missing from the web projects.

<--has WebDev Express installed, but hasn't opened it yet.

Thursday, August 11, 2005 2:40 PM by Scott

# re: ASP.NET Simplicity -- When Is Too Much Simplicity a Bad Thing

J. Palermo,
"Go to a build machine, pull down the project from source control and run the build/deploy script. Then try to run the app on a web server. What? It didn't work."

I see your point. That does suck. But does that work now? The way we've handled that is by creating a \lib directory and storing our binary dependancies in there. Right now they get copied to the /bin directory at compile time by VS, but I've been moving away from VS and starting to use makefiles/buildfiles.

Thursday, August 11, 2005 3:14 PM by Scott

# re: ASP.NET Simplicity -- When Is Too Much Simplicity a Bad Thing

MS posted a change they have made to help refresh file based references. See comments in
http://lab.msdn.microsoft.com/productfeedback/viewfeedback.aspx?feedbackid=4052b0c1-e0e3-4c3e-b911-48d393c8becc

Thursday, August 11, 2005 5:07 PM by Andy Miller

# re: MS Responded to Yesterday's Post with Another Work-Around

Boy, that sure looks a bit kludgey!

Mewonders if they actually changed the COMPILER to do this... Being an ol' compiler hacker, I get to say: EEEeeewwww!

It would have been easier to implement this as a post-build rule. Maybe that's what they really meant. (But then...wouldn't that require a project file to store such a post-build rule?)

Regardless, this might be workable. The only side-effect is that any other tools that have to look at the target folder (that contains these new .refresh files) will now have to ignore them in some instances.

And here I thought they had sorta promised to restore the project file in whole, not just partial-functionally. Guess they're going to kludge the tools for the advanced and enterprise developers and instead favor the beginners... Sad! (They claim to be listening, but are losing parts of the message during translation by some program manager or project manager. I'm sure they'll rationalize this "do it right the third time" development technique as "lack of resources"...calling their software developers "resources" once again.)

Thursday, August 11, 2005 7:19 PM by Steve Hall

# re: MS Responded to Yesterday's Post with Another Work-Around

Meanwhile, Paschal has reported a request for a VS2005 Beta 3 has been officially posted on the Feedback Center:

http://weblogs.asp.net/pleloup/archive/2005/08/12/422314.aspx

I voted for it, so that they can get the web project file feature "done right the fourth time"...

Thursday, August 11, 2005 8:51 PM by Steve Hall

# RossCode.com - References in Web Projects in VS.NET 2005

RossCode.com - References in Web Projects in VS.NET 2005

Thursday, August 11, 2005 11:38 PM by TrackBack

# re: Customers Ask for "Xml Projects" in VS Next -- Huh ?

Yeah I think its "XML Spy" style XML projects.

its cool, you can navigate through data hierarchially instead of as a DataTable :-)

Also, sample data schema validation and so forth. Its cool, and some of these features would be nice in VS, but of course theres Altova XML Spy :-)

Friday, August 12, 2005 11:49 AM by Eric Newton

# re: ASP.NET Simplicity -- When Is Too Much Simplicity a Bad Thing

For me ASP.NET should be able to produce output I'm proud of and be part of the development process I want.

That's:
XHTML
CSS
One source for all browsers OR I control it
Automated tests that easy to implement
...

Somewhere along the line this design seems to have focused on the Wizard driven developer and forgotten the "unassisted" developer.

In 1.1 I find myself throwing out all the design surface stuff driven stuff. It doesn't really mean more work cause fixing the wizard stuff ofdten seems undoable!

I haven't tested the version 2 stuff, but I was hoping they had made it more possible for the non wizard developer to use this stuff. This post fills me with despair. Has runaway complexity destroyed ASP.NET forever??

Friday, August 12, 2005 4:33 PM by Mike Gale

# re: ASP.NET Simplicity -- When Is Too Much Simplicity a Bad Thing

>Themes and Skins are one of the cool
>new features of ASP.NET v2, but have you ever >stopped to think that they wouldn't be needed
>we just used CSS stylesheets!

Actually, that isn't quite true. CSS is a way of styling HTML tags. Themes are a way of styling ASP.NET controls. Since controls are potentially quite complex composite HTML entities, styling them entirely through CSS could actually be quite complex, and would require knowledge of the exact HTML emitted by the control. Being able to style all GridViews on a site in a consistent way (where each aspect of the grid style can be specified using CSS, of course) is actually quite nice.

Friday, August 12, 2005 9:04 PM by Kevin Dente

# re: ASP.NET Simplicity -- When Is Too Much Simplicity a Bad Thing

Actually even the most complex web controls tend to have all their many properties also totally configurable by just a few CSS classes. For instance, on a grid you may have a bunch of header properties, footer properties, main item properties, alt item properties, and selected item properties, but they are all equally able to be set with just CSS classes for header, footer, main item, alt item, and selected item. The same is true for the calendar (now that title works) and even web parts (although the implementation does not work), as well as every other well-written control I've ever seen, no matter how complex. Yes there are probably some controls that don't offer this, but that's a reflection of a design that wasn't friendly to CSS classes and not the complexity of the control. And I'm sure there are only more of these unfriendly CSS controls partly because of the MS mentality that you create lots of properties instead of just simple CSS classes.

Now as much as I don't plan on personally using themes and skins, I do see a huge need for them. Huh? That's right, the majority of ASP.NET web devs don't know how to use CSS classes and will thus hopefully come to love themes and skins! :)

Friday, August 12, 2005 9:25 PM by Paul Wilson

# re: ASP.NET Simplicity -- When Is Too Much Simplicity a Bad Thing

With your background in Visual Basic and COBOL its pretty hilarious that you are so arrogant. At work there is a group of us that follow your blog just for the laughs. One person said that this isn't a blog as much as it is an homage to your ego.

Friday, August 12, 2005 10:15 PM by Anonymous

# re: ASP.NET Simplicity -- When Is Too Much Simplicity a Bad Thing

Glad I can bring amusement to you and your buddies. By the way, just for my ego's satisfaction, my background is almost totally math, and then it was Delphi long before VB. By the way, I'm more inclined to delete anonymous posts, although I couldn't resist this one.

Friday, August 12, 2005 10:22 PM by Paul Wilson

# re: Is the Sky Falling? Do we need a Beta 3? Do I even care?

Honestly, many of the things that we complain about today, aren't really huge. They are annoyances, but intelligent devs (and Architects) can work around them.

I'm actually mostly concerned about fundamental design issues. Those are more difficult to fix. Also, there are other issues (Like PerfMon counter issues in .NET 1.1) that are more of a 'showstopper' than build or project difficulties.

I do think that beta 3 is a waste of time, this close to release. It's really unlikely that there would be time to fix issues found in beta 3. Consider that there is probably a 2-4 week time difference between RTM (Release to Manufacturing) and GA (Generally Available). Microsoft has taken to calling RTM the time software is release to customers, but that's not really true. There is lead time for media and packaging preperation. The software actually does need to spend time in Manufacturing - remember, Visual Studio and SQL Server 2005 are both 'shrinkwrap' products. It takes time to shrinkwrap.

So, this all means that the Visual Studio and SQL Server teams are very, very short on time. They can't afford to make changes that may cause ripple effects accross the codebase, there is just to big of a chance of bug regression. I would expect that the PDC release of VS.NET and SQL Server will be extremely close to RTM/GA. Unless you find a critical bug, I'm pretty sure that we'll find that there will be very few changes to Whidbey.

Friday, August 12, 2005 10:24 PM by Jerry Dennany

# re: ASP.NET Simplicity -- When Is Too Much Simplicity a Bad Thing

Sorry, I just realized that my comment was incredibly poorly written. End of a long day.

What I was really trying to get at was that Themes let you style ALL instances of a control in one place (using CSS or not). That is, if you theme a control, you don't need to copy all of those styles to every instance of the control on your site - you set them once, and only have to change them in one place. It also makes it easier to rename styles (as you only have to change the style reference in one place) and to swap in and out entirely new style sets (swapping in a completely difference style sheet).

Is it a huge win? No, but it can be convenient. I don't think of it as an alternative to CSS, just a more convenient way to apply it.

Saturday, August 13, 2005 11:15 AM by Kevin Dente

# re: Is the Sky Falling? Do we need a Beta 3? Do I even care?

I've been on vacation the last few days (and fly back tomororw night), so am just catching up on the whole web project system thread (serves me right for finding an internet cafe to check my email).

I'm planning on posting a blog post on Monday or Tuesday that goes into the web project system in more detail and why we've made some of the changes we've made.

One thing I do want to clarrify is that we aren't changing things for the sake of "hobbyist developers". There are *a lot* of new web project system feaures that are specifially designed for enterprise building scenarios: much better scalability in terms of number of pages supported (support apps with 1000s of .aspx pages), patching binary support, much better error detection (much, much deeper and more accurate than VS2003 compilation), richer levels of pre-compilation support (including allowing you to completely remove all run-time compilation -- something not supported by VS2003 and ASP.NET V1.1 today), much richer command-line compilation support with MSBuild integration just to name a few. The web project system is also fully integrated with the new VSTS and Team Foundation features -- so you can now automate nightly builds using the new build server, run automated class unit tests, run automated web UI unit tests, calculate both block and arc code execution coverage of code, and perform performance tests against it.

The other thing I want to clarrify is that most (if not all) of the "missing features" that have been called out as part of this discussion are now fully supported in post-beta2 builds (note: the Beta2 code-base was frozen in February -- so a lot of time has passed since then). Specifically, some of the ones I've seen called out that I want to clarrify:

1) Source control checks in \bin directory binaries. This was *never* by design (since it makes source control extremely painful and almost useless), but was a late-regression in the beta2 tree that wasn't caught in time. This has been fixed since then and not be an issue in the final product.

2) Exclude file support. This was something we origionally thought wasn't needed because of a new feature in web compilation that allows projects to skip and continue over errors. The feedback after beta2 clearly indicated we were wrong so we added it back in. It will be fully supported in the final product.

3) Solution-to-Solution references and Copy-Local assemblies. This was a missing feature in Beta2 that we've also added and will fully support in the final product.

4) Assembly created for each page with Publish Web wizard. The web project system supports a granular level of assembly creation. In Beta2 it supported lots of different levels, but the Publish Web wizard was hard-coded to "fixed names" support which generated 1 assembly per page (useful for extreme patching scenarios, but also something that generates a lot of assemblies). This could be overrided using MSBuild, but wasn't very discoverable. The Publish Web Wizard now allows developers to choose the granularity they want in the dialog -- and the default is now 1 assembly per directory (which still provides good granularity -- but a lot fewer assemblies).

I'll go into more details about the web project system on Monday, but wanted to quickly answer some of the concerns above.

Thanks,

Scott

Saturday, August 13, 2005 12:38 PM by scottgu

# re: Is the Sky Falling? Do we need a Beta 3? Do I even care?

Well, they're changing the runtime to include Nullables... thats a pretty big ripple.

Truth is this is software. Electronic media. Forget the shrink wrap. Let that be a nice thing that people can hold if they so choose when they buy the product.

Let VS be the program that they have version issues with, and ServicePack VisualStudio2005 a HECK of a lot more than VS2003 (which to this day has NEVER had a SP)

So I'd say concentrate on working out those Nullable runtime changes.

Saturday, August 13, 2005 1:01 PM by Eric Newton

# re: Is the Sky Falling? Do we need a Beta 3? Do I even care?

Sure. Fine. Beta 3. Whatever...

Just release the framework itself (which is rock solid). Too many times people forget that .Net != Visual Studio. I started programming with CLI compilers way back when and can easily do it today. Yeah I like the pretty colors, syntax checking, and whatnot but if it means a delay then it's costing me time and money in developing apps today.

Saturday, August 13, 2005 1:11 PM by Jimmy Zimms

# re: ASP.NET Simplicity -- When Is Too Much Simplicity a Bad Thing

Kevin -- very nicely said. Of course it only works if your devs aren't setting properties and/or styles on the individual controls, since that would override your theme/skin. But if that's the policy that you enforce, and even for CSS that's always the hard part, then I agree that can be very useful.

Saturday, August 13, 2005 1:31 PM by Paul Wilson

# re: Is the Sky Falling? Do we need a Beta 3? Do I even care?

To clear a few things up:
1. When I asked for a Beta 3, I ment for Visual Studio only, not the framework. That is why I filed the suggesetion under Visual Studio.
2. When I put the suggestion up on the feedback center, I knew that a Beta 3 probably wouldn't happen because I doubt they're going to push back RTM no matter what.
3. Due to #2, my main hope was that putting a suggestion up like this would get the community discussing VS issues more loudly so that the VS team would see what areas people are the most concerned about (which seems to mainly be web project issues). Then those areas could hopefully get addressed before release. The last time VS had a service pack was in the 6.0 days so whatever issues that devs think are important need to get fixed before RTM.

Saturday, August 13, 2005 2:54 PM by Clint

# re: WilsonORMapper v4.1.1 Released -- With a Big Thanks to Paul Welter

Thanks for the compliments though I must confess I had to ask around for the answer as well. :) I've blogged about how it is done.

~ Paul

Saturday, August 13, 2005 7:18 PM by Paul Welter

# re: WilsonORMapper v4.1.1 Released -- With a Big Thanks to Paul Welter

COOL, thanks

Sunday, August 14, 2005 4:44 AM by ccBoy

# re: ASP.NET Simplicity -- When Is Too Much Simplicity a Bad Thing

cool

Sunday, August 14, 2005 6:56 AM by Shubhrta Khanna

# re: ASP.NET Simplicity -- When Is Too Much Simplicity a Bad Thing

To whomever likes to post anonymously and/or pretend to be someone else:

Its bad enough to post anonymous drivel, but its far worse to post nonsense under the guise of someone else.

While I try to approve anything that isn't spam, even if it is critical of me personally, I will be looking closer for now on to make sure that others are not being made to look badly.

Sunday, August 14, 2005 5:11 PM by Paul Wilson

# re: ASP.NET Simplicity -- When Is Too Much Simplicity a Bad Thing

>only works if your devs aren't setting
>properties and/or styles on the individual
>controls

Actually, themes override page-level control settings. Stylesheet themes, on the other hand, allow the page developer to override the theme settings. Ppersonally I find that naming to be unfortunate, as the distinction between the two types of themes isn't all that clear from the names.

Sunday, August 14, 2005 6:23 PM by Kevin Dente

# re: ASP.NET Simplicity -- When Is Too Much Simplicity a Bad Thing

for a joke that went too far. I will not bother you or your blog any further.

Sunday, August 14, 2005 6:35 PM by I Apologize......

# re: ASP.NET Simplicity -- When Is Too Much Simplicity a Bad Thing

Kevin -- Wow! I did not know that! That has changed from the early alpha previews, and I guess I was so disappointed that I never bothered to keep up. Shame on me. I'll have to seriously rethink things and try more themes/skins -- although I'll still set css classes in those themes/skins. :)

Sunday, August 14, 2005 8:01 PM by Paul Wilson

# re: WilsonORMapper v4.1.1 Released -- With a Big Thanks to Paul Welter

So how do you do it then? I had exactly the same problem Mr Wilson described I couldn't figure out how to pass a generic type where the type itself was a variable?

Paul can you post some indicative code?

Tuesday, August 16, 2005 2:08 AM by Alex James

# re: WilsonORMapper v4.1.1 Released -- With a Big Thanks to Paul Welter

Paul Welter details on his blog, but here's the simple code snippet:

private BindingFlags internalFlags = BindingFlags.CreateInstance | (BindingFlags.NonPublic | BindingFlags.Instance);
Type genericType = typeof(CustomType<>).MakeGenericType(type);
object[] args = new object[] { ... };
relations = Activator.CreateInstance(genericType, internalFlags, null, args, null, null);

Tuesday, August 16, 2005 5:41 AM by Paul Wilson

# re: WilsonORMapper v4.1.1 Released -- With a Big Thanks to Paul Welter

Aargh... I wish I had run into this post a while earlier because I struggled with this one for quite a while as well before figuring it out. Generics for all the power they present are going to take some time to digest and figure out all the oddities that they represent to the type system.

Actually there's a slightly easier way:

this.m_GenericEntity = Activator.CreateInstance<EntityType>();

Tuesday, August 16, 2005 11:53 PM by Rick Strahl

# re: Went to See March of the Penguins

I saw that this weekend, very entertaining, highly recommended. Is there anything cuter than watching penguins waddle around in sub-zero weather?

Wednesday, August 17, 2005 12:40 AM by Scott Mitchell

# re: WilsonORMapper v4.1.1 Released -- With a Big Thanks to Paul Welter

Rick: That work's great if you know the whole type (RootType<InnerType>) as a variable, but it doesn't work if both parts are variables.

Wednesday, August 17, 2005 5:21 AM by Paul Wilson

# re: WilsonORMapper v4.1.1 Released -- With a Big Thanks to Paul Welter

Sheesh. You guys are all way over my head. Now I have a reason to start playing with .Net 2.0 - just so I can play and learn about all this stuff and keep up with the conversation.

Wednesday, August 17, 2005 5:29 AM by Tim Haines

# re: System.Transactions.TransactionScope and IDbTransaction

Sunday, August 21, 2005 10:01 PM by Julie Lerman

# re: System.Transactions.TransactionScope and IDbTransaction

... only on sqlserver 2005, as the db has to promote the transaction to a DTC controlled one, it won't work on Oracle, IMHO.

Monday, August 22, 2005 3:17 AM by Frans Bouma

# re: System.Transactions.TransactionScope and IDbTransaction

I tested this with Ms Sql 2000 -- so I know that its false to say you must have Ms Sql 2005. And my understanding, but untested, is that Oracle does support the DTC -- else how would it work with Enterprise Services. What I keep hearing, and its also in Julie's link, is that you will automatically get even a single transaction in the DTC unless you are using Ms Sql 2005. Thus you want to continue using IDbTransactions unless you really need more, but then it should work seamlessly -- or at least that was true on Ms Sql 2000 in my tests.

Monday, August 22, 2005 6:52 AM by Paul Wilson

# re: System.Transactions.TransactionScope and IDbTransaction

Yes, Oracle will integrate into the DTC, through a tool that Oracle has called the "Oracle Services for MTS" assuming you are using the Oracle Client. The MS Client for Oracle has support for DTC built in, however, it does provide for full integration with Oracle. I don't know if any of this will allow for integration with the TransactionScope without the 10gR2 client. According to the things that I have read and heard, the 10gR2 client will provide additional integration with Whidbey.

Monday, August 22, 2005 8:20 AM by Wallym

# re: System.Transactions.TransactionScope and IDbTransaction

I thought to get the fully promotable transaction, you had to have a specific type of connection, which Sql2k5 as the first database to support this connection.

Monday, August 22, 2005 8:22 AM by Wallym

# re: System.Transactions.TransactionScope and IDbTransaction

There's a lot of things we've all read and heard, and that's the problem. Some people seem to have heard that you need Ms Sql 2005, but my tests show that is simply not true since it worked with Ms Sql 2000. Of course my assumption that things will also work with Oracle, since I don't see it as any different than Ms Sql 2000, also needs to be tested since otherwise its no better advice than the other hearsay. The one thing that seems to be consistent in all the hearsay is that only Ms Sql 2005 is smart enough to not enlist in the DTC if its not necessary -- but that's not the same thing as saying you need Ms Sql 2005.

Monday, August 22, 2005 8:32 AM by Paul Wilson

# re: System.Transactions.TransactionScope and IDbTransaction

By the way, this reminds me of something I learned from someone far better than I -- and which taught me that you must test things for yourself and not believe what you read/hear:

If you remember COM+ transactions, they required you to call either SetComplete or SetAbort. All the examples only called SetAbort if something went wrong, and in fact all the documentation flat-out said that calling SetAbort would doom the transaction. So I was quite annoyed when I looked at my colleague's code and notice that the first thing he always did was call SetAbort! My reading of the documentation and all the MS examples meant that he was automatically making all his transactions fail -- but of course he was not and that much was obvious since his code was obviously working. So I asked him how this could possibly be working, and he told me that what mattered was not whether or not you called SetAbort, but what was called last when you left that method -- so his calling SetAbort first didn't matter as long as he later called SetComplete when things worked correctly. I could see he had to be right since his code worked, but that brought up my next question, which was why do it this way though? His answer was that the default was Complete, so if something catastropic happened but SetAbort was not called then the transaction would get committed! What could possibly happen that would be catastrophic and not get my SetAbort called, since it was in my error handler? He pointed out that there are lots of things that can go wrong in the real world, like power and network surges. I kept wanting to insist on the documentation and all the code examples -- and he encouraged me to test it myself. It took the better part of a day, but I finally did manage to hit my power button at just the right time to cause just such a catastrophic event -- and I proved him to be quite right and all the documentation and examples very much flawed. So the thing I learned was that you can't assume that what you hear and/or read is correct in all the details.

Monday, August 22, 2005 8:48 AM by Paul Wilson

# re: System.Transactions.TransactionScope and IDbTransaction

Paul,

Please correct me if I am wrong on this, however, I think we are looking at two slightly different questions.
#1 is your original question with regards to the transactionscope integration. I believe that you are talking about the ability to integrate.
#2 is the ability to have promotable transactions. I believe that this is a inadvertent threadjacking.

Wally

Monday, August 22, 2005 9:55 AM by Wallym

# re: System.Transactions.TransactionScope and IDbTransaction

I'm not sure I see the distinction. If you mean that only Ms Sql 2005 doesn't automatically enlist the DTC then I agree, but if you mean that Ms Sql 2000 (and probably Oracle) won't get promoted to the DTC then I think I disagree.

Monday, August 22, 2005 10:13 AM by Paul Wilson

# re: System.Transactions.TransactionScope and IDbTransaction

Ok, I misread your posting. I thought the transaction wasn't initially in an enterprise services managed component (or what's its successor called in .NET 2.0). So if it's not in a COM+ managed component, the DTC won't know about it, and it will never get promoted. Though if it's already in a COM+ managed transaction, then yes, you don't need to do anything. But that's not really that new, in .NET 1.x this is also already the case.

Monday, August 22, 2005 10:55 AM by Frans Bouma

# re: System.Transactions.TransactionScope and IDbTransaction

No you read the initial post correctly. I have intentionally not introduced anything related to Enterprise Services or COM+ -- other than the of course using the new TransactionScope. All I did was create two regular IDbTransactions against a Ms Sql 2000 database and execute two commands, the first of which I committed, but the second one failed and rolled back (due to duplicate record in my particular case). The block of code without be wrapped in a TransactionScope ended up with the first command having been committed, but the second not -- as I expected. The exact same block of code wrapped in a TransactionScope had the result that both commands were rolled back. Nowhere did I do anything else that involved any setup on my part to prepare things for the DTC by using EnterpriseServices or COM+.

Monday, August 22, 2005 11:10 AM by Paul Wilson

# re: System.Transactions.TransactionScope and IDbTransaction

Paul I saw a demo of this today. And this is my take away.

Yes you can use System.Transactions with SQL2000 there is a drawback however. Because SQL2000 and every other database except SQL2005 aren't Ligthweight transaction aware, once a SqlConnection (2000) has an ambient TransactionScope it automatically enlists with MSDTC, even if only that connection is the only connection used in the transaction.

I.e you don't get lightweight transactions. What does that mean? It means sure you can use a TransactionScope with SQL2000 but if you could have done it with a standard SqlTransaction and no DTC you have just made your code slower, because of the MSDTC overhead.

To illustrate imagine this in a transaction scope:

connection2000.open();
commandOn2000_1.execute();
commandOn2000_2.execute();

the call to connection.Open() will always spin up a MSDTC transaction, why because 2000 can't upgrade it's transaction manager on demand, and so it needs to start with the most flexible one first namely the MSDTC one.

whereas this:

connection2005.open();
commandOn2005_1.execute();
commandOn2005_2.execute();

won't get to MSDTC because 2005 is compatible with the ability to upgrade transaction managers on demand, so it can start with the lightweight one (which doesn't use MSDTC) and since it can all be done locally it never needs to upgrade.

Does that make sense?

Wednesday, August 31, 2005 8:15 AM by Alex James

# re: System.Transactions.TransactionScope and IDbTransaction

Sure, we are in agreement that using the TransactionScope is not the way to do a single transaction (unless maybe you know you are using SQL 2005). I don't think anyone has disagreed with that, although maybe that wasn't clear so thank you for clarifying that. My point was that you can take your existing code that uses the IDbTransaction and seamlessly enlist it into a TransactionScope when you need to do so.

Wednesday, August 31, 2005 8:28 AM by Paul Wilson

# re: System.Transactions.TransactionScope and IDbTransaction

We maybe in agreement, the point is it is a real shame... I would have really liked to replace my SqlTransaction code, with TransactionScope calls instead, it would have made my code so much more readable.

But now I have a decision to make is readability or speed more important?

Wednesday, August 31, 2005 3:51 PM by Alex James

# Re: Linq is Really Cool -- But DLinq is a Big Mess

"...But you've already marked your Customer class with the attribute "Table(Name = 'Customers')", not too mention all the Column attributes -- so why isn't the attribute enough to make it clear what "Customers" refers to?"

Perhaps one might use two databases at once? What's wrong with that?

About being tied to MS SQL: I don't think that it will be tied to anything at the end (not sure what's the situation right now).

But look on the bright side: it supports read after save and it supports saving all context at once.

:-)

Thursday, September 15, 2005 10:44 AM by miha at rthand nospam com (Miha Markic [MVP C#])

# re: Linq is Really Cool -- But DLinq is a Big Mess

I think you'll find with a closer look at the docs that even using multiple databases doesn't require that additional complexity. And while I hope you're right that it won't be tied to MS Sql in the end, so far experience has taught us otherwise -- and as others have already pointed out (and me also a long time ago), an attribute based system makes it much harder to support multiple databases in many real-world cases. Finally, who doesn't support read after save, and you already know that I consider saving an entire context to be a questionable practice in most cases, but to each his own.

Thursday, September 15, 2005 11:05 AM by Paul Wilson

# re: Linq is Really Cool -- But DLinq is a Big Mess

You said:

why should I have to say "from c in db.Customers select c" when I could just "from Customers" or have a strongly typed Get accessor...

In actuality, you can do foreach(var c in db.Customers).

You do not have to use select if you want all the customers. Table<Customer> derives from IEnumerable<Customer>.

Thursday, September 15, 2005 11:42 AM by Wesner Moise

# re: Linq is Really Cool -- But DLinq is a Big Mess

That's good to know, although in that case it doesn't look like there's any way to define a default sort order that many of us provide.

Thursday, September 15, 2005 11:46 AM by Paul Wilson

# re: Linq is Really Cool -- But DLinq is a Big Mess

Would anyone plase actually read the overview document by Box and Hejlsberg? Quote:

"Full-blown object/relational mapping could also take advantage of this core query capability for users wanting that functionality."

Dlinq is not MEANT to be a full ORM. It is strongly typed querying against databases, that is it. I really don't believe that the main scenario they anticipate here is that you actually use instances of the classes on which you define the mapping as your business entities. They are just used to give you strongly typed access to a specific DB, that is it. What type of object you actually get from a query is a totally different question, and one Dlinq does not enforce anything on you. You can just project into an anonymous type, or if you want into objects that are your business entities. Its up to you.

Thursday, September 15, 2005 12:06 PM by David

# re: Linq is Really Cool -- But DLinq is a Big Mess

It may not be intended to be a "full" ORM, but it is nonetheless an ORM. My own ORM also does not try to have every feature, but that's because it is targetted at simplicity and the most common 90-95% scenarios -- and I'm stating that DLinq fails in those goals too, and that after years of effort and already having had lots of feedback.

Now I have read that document and seen that quote, but I believe you're failing to see that anyone attempting to build a "full ORM" on top of DLinq will still be limited by its basics. How will you build something on top of it without first defining these attribute based entities, and how will you add support for other databases if DLinq does not do so?

No, I'm sorry, but DLinq is an O/R Mapper although it does appear they don't want to call it that -- maybe they're afraid people will then discover there are others once they are familiar with that term. :) And if someone seriously believes its not an ORM, then do tell what it is?

Thursday, September 15, 2005 12:27 PM by Paul Wilson

# re: Linq is Really Cool -- But DLinq is a Big Mess

You may want to enter your feedback at http://blogs.msdn.com/danielfe/archive/2005/09/15/467239.aspx

Thursday, September 15, 2005 1:22 PM by Sam Gentile

# re: Linq is Really Cool -- But DLinq is a Big Mess

Hi Paul,

"I think you'll find with a closer look at the docs that even using multiple databases doesn't require that additional complexity."

But how would you specify from which database you want read from?

"And while I hope you're right that it won't be tied to MS Sql in the end, so far experience has taught us otherwise "

Yes and no. Look at ADO.NET for example.


"-- and as others have already pointed out (and me also a long time ago), an attribute based system makes it much harder to support multiple databases in many real-world cases."

Attributes are just attributes. This doesn't mean that one can use some sort of mapping file, too.

"Finally, who doesn't support read after save, and you already know that I consider saving an entire context to be a questionable practice in most cases, but to each his own"

:-)

Thursday, September 15, 2005 2:10 PM by Miha Markic

# re: Linq is Really Cool -- But DLinq is a Big Mess

I think that David has a good point here. DLinq alone is a querying engine (sort of). ORM is done through DataContext which is a sepearate beast.

Thursday, September 15, 2005 2:11 PM by Miha Markic

# re: Linq is Really Cool -- But DLinq is a Big Mess

I have my own ORM also so when I heard about dlinq I was also wondering what place was left in the world for it. I agree with you that linq is great but dlinq is a poor substitute for a real ORM.

I think you're overstating the importance of the fact that 99% of developers never use anything but what MS gives them. First off, MS is certainly giving them something much better than they've had before, so even for those people, dlinq is a step up.

But more importantly, for those of us who *do* care about the features MS left out, the infrastructure invented to support dlinq pretty much guarantees that our own ORMs will be able to do cool stuff that's previously been unable to.

For example, right now users of my ORM have to jump through hoops to do sorting - either by declaring several gets with different sort orders, or by doing stuff like:

ArrayList people = Person.GetByAll();
people.Sort(Person.LastNameOrder);
foreach (Person person in people) {...}

secondary sorts are even more awkward.

Allowing stuff like:

var people = from p in Person.GetByAll()
orderby p.LastName, p.FirstName
select p;

is much nicer especially if it's possible to get the database to do that ordering, which I think it is (again, using the same technology developed for dlinq).

Thursday, September 15, 2005 4:02 PM by Stuart Ballard

# re: Linq is Really Cool -- But DLinq is a Big Mess

I was actually waiting for your comments on this, and you are pretty much spot on.

One more point:
One of my complaints about WinFS when introduced at PDC 2003 is that they introduced Yet Another Query Language. We've got Query Languages for WMI, MSI, SQL (and all subsets like T-SQL and PL-SQL), XPath, SNMP, and who knows what else. Now, added to the mix is Linq/DLinq/XLinq.

As a 'front-line' developer, the only usefull thing that I can hope for out of all of this is a melding of query languages while working in a .NET world.

I think you are correct when you state that because it is in the framework, this will become the defacto standard.

--

On a related note, what was more interesting to me than Linq was the idea of extension methods. To be introduced in C# 3.0, it provides a mechanism for adding functionality to existing (usually sealed) classes. Seriously cool stuff, though it should be used with care.

Thursday, September 15, 2005 4:37 PM by Jerry Dennany

# re: Linq is Really Cool -- But DLinq is a Big Mess

"On a related note, what was more interesting to me than Linq was the idea of extension methods. To be introduced in C# 3.0, it provides a mechanism for adding functionality to existing (usually sealed) classes. Seriously cool stuff, though it should be used with care."
The rest of the world calls that AOP and is generations ahead in that field compared to the .NET world, except perhaps spring.NET and some early bird weavers.

Extension methods can IMHO be used to enable AOP elements, which is great, though this can already be done transparently, now, as spring.NET shows.

For the people who think DLinq isn't an attempt to write an O/R mapper, it's my understanding that DLinq performs CRUD operations, not just retrieval. The document of DLinq for example mentions change tracking and why would anyone need changetracking if you don't save data? ;)

Thursday, September 15, 2005 4:55 PM by Frans Bouma

# re: Linq is Really Cool -- But DLinq is a Big Mess

The DLinq document I linked to quite explicitly has persistence examples -- so that's not an open question.

Thursday, September 15, 2005 5:07 PM by Paul Wilson

# re: Linq is Really Cool -- But DLinq is a Big Mess

Thursday, September 15, 2005 5:40 PM by Patrik Löwendahl

# re: Linq is Really Cool -- But DLinq is a Big Mess

Frans - Yes, I'm familiar with AOP - however, until support baked in, then it's unlikely that I will be able to use it. I don't drive such feature adoption in my organization. For me, Spring.NET (or O/R Mappers) are a tough sell. I've got a large team to convince. However, if a feature is part of the base language, then it is generally not an issue.

Thursday, September 15, 2005 5:49 PM by Jerry Dennany

# re: Linq is Really Cool -- But DLinq is a Big Mess

"How will you build something on top of it without first defining these attribute based entities, and how will you add support for other databases if DLinq does not do so?"

I think you're not looking deep enough at the technology yet. You're letting the "lameness" of DLINQ, which I somewhat agree with, blind you from what really matters.

LINQ is the base. DLINQ and XLINQ are built on top of LINQ. If you wanted to build your own ORM you don't build on top of DLINQ. You build something that is a sibling to DLINQ. You then build LINQ support for your custom ORM.

So considering your existing architecture, you essentially keep exactly what you have now for configuring and representing entities and all you do is throw out whatever mechanism you came up with for querying and replace it with support for LINQ expressions.

For example, for querying in my custom ORM implementation I have the concept of an EntityQuery, EntityQueryConditionGroup and EntityQueryCondition classes. EntityQuery is made up of multiple conditions as well as exposing sorting and paging semantics. These essentially get thrown out when I update my ORM implementation to work with link LINQ. Instead, I allow people to use LINQ and I translate the LINQ expressions into SQL statments just like DLINQ does to be as efficient as humanly possible for the backend data store I'm talking to. For example, you mentioned paging, I could be sure to issue a TOP statement to ensure I don't get back any more records than I really need. BTW, DLINQ *does* support this the same way, the expression is just a weird name which I can't remember off the top of my head.

Ultimaely I believe that once you give it some more time you'll realize that how they implement DLINQ really doesn't matter. Focus on your ORM and be very comfortable in the fact that you'll be able to integrate with the rich querying syntax smoothly into languages using your own custom LINQ expressions.

Cheers,
Drew

Thursday, September 15, 2005 7:09 PM by Drew Marsh

# re: Linq is Really Cool -- But DLinq is a Big Mess

Hi Drew:

That I can agree with -- you are correct that I can build just on top of Linq. I guess my issue is that even though this can be really cool for my OR/M, its not enough since MS is also giving us DLinq. Why, since as you point out I can ignore DLinq? Because the vast majority of people and shops in the MS world expect you to use the MS implementation. If MS only gave us Linq then a decent minority would be willing to accept other mappers that took advantage of Linq. But once MS also gives us DLinq, then that will be what most people will use, and they will never look elsewhere or see that there is even a reason to do so. While I do really like my mapper, I know that I'll have far more clients that won't be willing to use it or any other mapper -- and since I'm a consultant far more than I am a vendor that is a big deal to me. I do think Linq is great, but I find it inexcusable that MS has worked over 5 years on OR/M and in their 3rd attempt now they have made a mess. What were they thinking?

Thursday, September 15, 2005 8:15 PM by Paul Wilson

# re: Linq is Really Cool -- But DLinq is a Big Mess

Paul,

Yeah, I hear ya. I guess that's less of an issue for me personally since I'm not a consultant.

That said, this technology is way out there (probably 2008) and they were VERY open to feedback. If you really are worried about DLINQ's shortcomings, I highly recommend getting involved right now if you want to voice your opinions and maybe get some of the changes you'd like to see taken care of.

I'm just extremely pleased with the base LINQ technology and that our own ORM implementations will be first class citizens with respect to the language syntax. :)

Thursday, September 15, 2005 10:25 PM by Drew Marsh

# re: Linq is Really Cool -- But DLinq is a Big Mess

Your review sounds like sour grapes to me.
If you want all customers just use:
"var q = Customers"
I don't see how you can get any more succinct than this. Inheritance will be the next feature added when they return to redmond, heck maybe in time for your MVP conference. WinFS integration with LINQ was shown at the conference.

There are several severe limitations with Dlinq right now but lets kick the tires and get them to raise the bar.

Sunday, September 18, 2005 1:09 AM by Dave Foderick

# re: Linq is Really Cool -- But DLinq is a Big Mess

Hm,

I am heavily looking into the whole LINQ thing right now for the next generation of our EntityBroker... AND....

It looks like while we WILL support LINQ (as "ELinq"), we will NOT throw out or own stuff. Because sadly LINQ is way too limited in it's expressions. Stuff like paging, load hints can not be represented - the query syntax is just too simple.

As elegant as it is, sadly.

Sunday, September 18, 2005 1:58 PM by Thomas Tomiczek

# is c# 3.0 going to be released this november?

Just wondering if c# 3.0 is going to be released with visual studio 2005 and .net 2 in november 2005.

All this new linq stuff looks cool but i'm wondering if its worth my time to looking into this if its not getting released for another year or something.

thanks

Sunday, September 18, 2005 9:13 PM by Troy

# re: Linq is Really Cool -- But DLinq is a Big Mess

Oh my no -- C# 2.0 will be released with VS 2005 and .NET v2.0 -- not C# 3.0. You're looking at 2007 or 2008 before C# 3.0 and .NET v3.0 comes out. PDCs are always about the next wave, not the current wave -- TechEd and other conferences are better suited for learning the current wave. So the question for you is are you preparing for 2.0 ?

Sunday, September 18, 2005 9:21 PM by Paul Wilson

# re: Linq is Really Cool -- But DLinq is a Big Mess

As I understand it LINQ does not require a new runtime, i.e. .NET 3.0, but runs on .Net 2.0. What it does need is new compilers though. In the PDC presentations Anders Hejlsberg said they were targeting ORCAS(next release of Visual Studio after Whidbey) for those. This *probbaly* means early 2007. (http://msdn.microsoft.com/vstudio/productinfo/roadmap.aspx)

Sunday, September 18, 2005 11:25 PM by Christoffer Skjoldborg

# re: Linq is Really Cool -- But DLinq is a Big Mess

I think adding some information here might help. DLinq was designed to be an extremely low entry point into ORM and to be used as an example of how to build a LINQ enabled API. Dlinq is a preview of technology that will likely change considerably before it ships, adding or changing features based on feedback. We decided to show this technology extremely early in its design so that by the time it ships it will be the right combination for a broad customer base. However, we anticpate that other ORM vendors offering superior features will also choose to LINQ enable their products to take advantage of language integrated query. This was indeed a goal of LINQ's design, keeping the language features entirely separate from the API's.

At this point, the design of DLinq has been biased heavily toward rich query support with an API targetted toward simplicity. This has lead to trade-offs in what is available today, such as attribute based mapping declarations and a class of mapping that is not much more than one-to-one with the database. While these may not scale to the kind of applications handled by ORM's such as Paul's, they are indeed simpler to define, easier to grasp and quicker to make use of.
Still, our intention is not to leave DLinq in this state, but to advance it to include some of the more popular ORM features such as inheritance, many-to-many mapping, events, support for additional databases and so on, depending on the kind of feedback we get.

Remember, this is not a finished product nor is it even a beta. It is not a revision of ObjectSpaces, yet it is based on many lessons we learned from building both ObjectSpaces and C-Omega. We've previewed it early so you can tell us what is most important to you.

Monday, September 19, 2005 2:36 AM by Matt Warren

# re: Linq is Really Cool -- But DLinq is a Big Mess

Christoffer:
While you can run the Linq preview with VS 2005, it works only by redirecting to a preview C# 3.0 compiler. It is not part of VS 2005, .NET v2.0, or C# 2.0 -- nor will it become part of that, other than a preview.

Matt:
Thank's for the explanation. Its very good, but its still extremely frustrating to keep hearing that this is just an early preview when we know MS has 5+ years experience wrapped up in O/RM. I still haven't heard anyone explain why ObjectSpaces wasn't turned into DLinq.

Monday, September 19, 2005 5:54 AM by Paul Wilson

# re: Linq is Really Cool -- But DLinq is a Big Mess

LINQ does not require version 3.0 of the .Net _framework_. It will work with v 2.0 of the framework.
What it does require is new compilers. The c# 3.0 compilers and VB.Net 9.0 compilers will be part of ORCAS which *may* very well be released before a version 3.0 of the .Net framework...and hopefully before 2008 ;-)

Monday, September 19, 2005 5:56 PM by Christoffer Skjoldborg

# re: Next Week at Microsoft for ASPInsiders Summit

sorry to hear you're not here. I was looking forward to meet you in person, perhaps some other time :)

Friday, September 30, 2005 1:04 AM by Frans Bouma

# re: Web Deployment Projects to fix Lack of Web Project Files

Thanks for the tip. This is great info!

Wednesday, October 05, 2005 4:39 PM by Jeffrey Palermo

# re: Web Deployment Projects to fix Lack of Web Project Files

This sounds really fantastic, and made me sigh in relief because I had yet to hear of anything like it. Are you able to share any more details or links to any of the demos?

Wednesday, October 05, 2005 4:46 PM by Nolan Zak

# re: Web Deployment Projects to fix Lack of Web Project Files

There's nothing else I can show or link you to right now -- its all stuff the MS ASP.NET team is in the middle of right now -- but its a high priority item since they plan to have this out at launch as an add-on.

Wednesday, October 05, 2005 4:49 PM by Paul Wilson

# re: More Free SharePoint Training in Atlanta

The next and final edition of SharePoint 1, 2, 3! is happening next week. Come one, come all and hopefully learn a little bit about SharePoint

Tuesday, October 11, 2005 2:48 AM by Matt Ranlett

# re: Web Deployment Projects to fix Lack of Web Project Files

I wonder if this is what <a href="http://www.eworldui.net/UnleashIt/">Matt</a> was hired to work on? ;-)

Tuesday, October 11, 2005 12:21 PM by Travis

# re: WilsonORMapper v4.2 Released -- Includes Command Interception and Lookup Queries

Ah, been waiting for this one. Excellent stuff, Paul.

Saturday, October 15, 2005 9:57 PM by Vurg

# re: Web Deployment Projects to fix Lack of Web Project Files

I loved the add in...

Thursday, October 20, 2005 12:29 PM by anu

# re: Web Deployment Projects to fix Lack of Web Project Files

I look forward to aspnet_merge; however, I didn't want to wait for it.

I have done something to do merging (and just plain ASP.NET 2.0 assembly renaming).

Check my solutions out here: http://www.geekswithblogs.net/rwandering/admin/Referrers.aspx?EntryID=57585
and
http://www.geekswithblogs.net/rwandering/admin/Referrers.aspx?EntryID=57651

Cheers!

Friday, October 21, 2005 11:44 PM by Robert W. Anderson

# re: WilsonORMapper v4.2 Released -- Includes Command Interception and Lookup Queries

Hi,Paul.
I'm trying to use NHibernate now , but I'm confused of the files of O/R mapping (*.hbm.xml),especially the mapping tag of several relationships(one-one,one-many and many-many).Can you give me some other simple examples,code resources will be appreciate!
BTW: Can you explain the outer join relationship between two objects.

Tuesday, November 08, 2005 2:03 AM by Sunny

# re: WilsonORMapper v4.2 Released -- Includes Command Interception and Lookup Queries

You do realize that my ORMapper is not NHibernate? Anyhow, I've already posted an example using NHibernate:
http://weblogs.asp.net/pwilson/archive/2005/05/26/409042.aspx.

As for the outer join relationship, if you download my ORMapper demo you will see it for yourself. But the basic idea is that your object has a lookup that you want to display as part of your object -- my "lookup" feature allows that to be handled transparently.

Thanks, Paul Wilson

Tuesday, November 08, 2005 7:18 AM by Paul Wilson

# re: Atlanta VS/SQL 2005 Launch Today -- And Still Working

The day got better IMO - I saw two pretty informative presentations in the SQL Track. Even with my light exposure to 2005 there was nothing new in the other track; I do think if anyone was brand new to 2005 then bar the opening sales pitch it was been a valuable day.

Wednesday, November 30, 2005 8:02 AM by Paul Lockwood

# re: Atlanta VS/SQL 2005 Launch Today -- And Still Working

Paul, its the holidays, try to take it easy! :-)

Thursday, December 01, 2005 9:07 PM by Travis

# re: My Highlights of 2005 and Goals for 2006

Glad to hear that things are going well. Looking forward to seeing you speak at more events around Atlanta.

Wednesday, January 04, 2006 9:34 PM by Jerry Dennany

# re: WilsonORMapper v4.2.1 Released -- Includes Sql2005 Row_Number Paging

Oh man, play time tomarrow! Nice work Paul, can't wait to play with this.

Wednesday, January 25, 2006 12:13 AM by Travis

# re: WilsonORMapper v4.2.1 Released -- Includes Sql2005 Row_Number Paging

Outstanding, Paul! Thank you for your continued support and commitment, as well as a big thanks to all those who have contributed. WilsonORMapper is a brilliant tool.

Wednesday, January 25, 2006 12:32 AM by David

# re: WilsonORMapper v4.2.1 Released -- Includes Sql2005 Row_Number Paging

"Efficient Paging with Row_Number"???

Looking at the execution plan it doesn't seem efficient(at least according to my tests). if you select pageindex 100 with pagesize 10 out of a 10000 rows table, guess how many rows does the sql server scan?

Br,
Deyan Petrov

Wednesday, January 25, 2006 4:13 AM by Deyan Petrov

# re: WilsonORMapper v4.2.1 Released -- Includes Sql2005 Row_Number Paging

You or your DBA are still responsible for proper database indexing. O/R Mappers do NOT remove the need for database optimization -- they free your team from boring CRUD so that they can focus their time where it should be spent.

Wednesday, January 25, 2006 6:23 AM by Paul Wilson

# re: WilsonORMapper v4.2.1 Released -- Includes Sql2005 Row_Number Paging

How would you index the dynamically ROW_NUMBER generated column?? Because afterall it gets down to this, when you want to filter out 1 page out of the 100 pages resultset ... Or you mean the 100 pages resultset should have been narrowed down before doing the ROW_NUMBER to 1 page using other indexes??

Thursday, January 26, 2006 5:06 AM by Deyan Petrov

# re: WilsonORMapper v4.2.1 Released -- Includes Sql2005 Row_Number Paging

The ROW_NUMBER column shouldn't be the problem, at least I don't think so anyhow. The problem you are seeing is most likely the ORDER BY clause, and if you have a WHERE clause then it too possibly.

Thursday, January 26, 2006 7:12 AM by Paul Wilson

# re: ASP.NET Forums Really Suck in FireFox

I've found the forums noticeably slower in Firefox than in IE since the upgrade. Not end-of-world slower, but ya :)

Thursday, January 26, 2006 10:57 AM by karl

# re: ASP.NET Forums Really Suck in FireFox

Is this more a grip with the asp.net's speed itself or the community server code itself?

like if you goto CS's forums, are they just as slow/buggy?

Thursday, January 26, 2006 10:59 AM by Steve

# re: ASP.NET Forums Really Suck in FireFox

I shot an email to telligent telling them they need to hire a developer with a good knowlege of web standards so they can avoid problems just like what you're referring to but I never heard back (not surprising though). There's really no excuse for this kind of thing anymore, it's not 1980.

Thursday, January 26, 2006 11:05 AM by Chris Wallace

# re: ASP.NET Forums Really Suck in FireFox

Nope - works just fine for me. Pretty responsive. Next button works just fine.

Most strange.

Thursday, January 26, 2006 11:05 AM by Harley

# re: ASP.NET Forums Really Suck in FireFox

I just visited the forums in Firefox, and they loaded fine for me..just as fast as I'm used to. I clicked a few links and still seems fairly fast for me. I do, however, see that you have to click the next link twice in Firefox, but not in IE.

Thursday, January 26, 2006 11:07 AM by Josh

# re: ASP.NET Forums Really Suck in FireFox

I haven't noticed anything. It works fine here with Firefox 1.5
That's http://forums.asp.net right ?

Thursday, January 26, 2006 11:16 AM by Fabrice

# re: ASP.NET Forums Really Suck in FireFox

Paul,

I use FF a lot too, but don't seem to have that problem. Do you have any plug-ins installed for FF? We've have seen some issues with FF with plug-ins, but through we had fixed all of those.

Please let me know: rhoward@telligent.com

Thursday, January 26, 2006 11:28 AM by Rob Howard

# re: ASP.NET Forums Really Suck in FireFox

I just gave it a quick visit in fire fox and did not have any problems with load time and the next page link appears to be working fine. I would say that it was the same experience as when I was in IE.

Checked the about dialog on FF, and here is what they list for version info. Plus I have no additional add ins installed.

Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.12) Gecko/20050915 Firefox/1.0.7

Thursday, January 26, 2006 11:29 AM by Kevin Blakeley

# re: ASP.NET Forums Really Suck in FireFox

There is also an IE tab extension to open up tabs using the IE render engine.

And offcourse there are some tabbed browser variants using the IE engine.

Thursday, January 26, 2006 11:33 AM by Mischa Kroon

# re: ASP.NET Forums Really Suck in FireFox

The ASP.NET forums loading quickly for me in FireFox 1.5.0.1. It's possibly an extension issue.

I use the IETab extension (http://ietab.mozdev.org/) when I run into a site that works poorly in FireFox - it let you view the page inside the FireFox environment, but with the IE rendering engine.

Thursday, January 26, 2006 11:42 AM by Jon Galloway

# re: ASP.NET Forums Really Suck in FireFox

I dont know about the speed but I can't agree more on the new layout of the asp.net site ... its simply doesnt look that it was done by professional but more by juniors ...

Thursday, January 26, 2006 11:51 AM by John

# re: ASP.NET Forums Really Suck in FireFox

Steve: Just a CS Forums problem -- ASP.NET is plenty fast (if not faster than anything else).
--------------
Everyone else:

I'm using FF 1.5 (user-agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8) Gecko/20051111 Firefox/1.5)

with the following extensions:
DOM Inspector 1.8
Talkback 1.5
Web Developer 1.0.1
Image Zoom 0.2.3

Loading a page takes too long, scrolling takes even longer, and switching back to an already loaded page takes too long. And yes, the next or page specific link takes 2 clicks in FF for me and at least one or two others apparently.

While its nowhere near as slow in IE, its also obviously slower than it used to be -- and its just got too much eye candy to be as useful. A lot of the bells and whistles make for a nice feature list, but the beauty of the earlier versions was they were quick and easy to use.

Thursday, January 26, 2006 11:56 AM by Paul Wilson

# re: ASP.NET Forums Really Suck in FireFox

Hmmm, I use FF 1.5 here and at aspnetpodcast.com site to enter and view data with no problems. I don't view the forums through the web much (mostly the nntp interface), but I haven't seen any problems this morning so far.

I think the problem is the new version of CS thats out there.

Thursday, January 26, 2006 12:31 PM by Wallym

# re: WilsonORMapper v4.2.1 Released -- Includes Sql2005 Row_Number Paging

Congratulations on shipping a new version Paul!

Thursday, January 26, 2006 12:32 PM by Wallym

# re: ASP.NET Forums Really Suck in FireFox

I too had problems with Firefox.Please see http://forums.asp.net/1123972/ShowPost.aspx#1123972 for my findings.

Thursday, January 26, 2006 12:34 PM by Wilco Bauwer

# re: ASP.NET Forums Really Suck in FireFox

I know that CS started using components from ComponentArt.com. I like the look and feel of these components and I know they work well with major browsers. My question is what parts of CS are using ComponentArt?

Abdu

Thursday, January 26, 2006 12:38 PM by Abdu

# re: ASP.NET Forums Really Suck in FireFox

Wally: I don't see any links or info on the NNTP possibility -- where is that option? I knew CS had that option, but I didn't know they were available on the ASP.NET forums.

Thursday, January 26, 2006 12:58 PM by Paul Wilson

# re: ASP.NET Forums Really Suck in FireFox

The ComponentArt stuff is cool, but some of it isn't very speedy.

I thought for awhile about giving up POP Forums and selling out, but CS has become too big and not useful if you plan to customize much of anything. I think Alex Lowe posted some stat about several thousand files being touched since the last build. You've gotta be kidding me!

It's just too much a corporate product now.

Thursday, January 26, 2006 1:16 PM by Jeff

# re: ASP.NET Forums Really Suck in FireFox

that page wilco pointed to took 15 seconds to load in FF 1.5 here (and I'm on a 700KBYTE/sec internet line). I find it odd that the forums over at asp.net are so slow. Also when you reply, it's very slow, as it has to load all those darn icons again, like I care about that... :/

I'm not sure if it's the server hardware that makes it slow, or the software design. (or the stored procedures! ;) sorry couldn't resist ;)) What I do know of our own forum software is that it doesn't have to be slow. A forum is not rocket-science.

Thursday, January 26, 2006 1:52 PM by Frans Bouma

# re: ASP.NET Forums Really Suck in FireFox

Paul: You can open an NNTP reader and point it at forums.asp.net. Use your forums username/password if you wish to post to the forums.

The version of the forums that is on forums.asp.net does not do a good job pointing out the fact that NNTP is enabled and how you should use it. Later versions do a better job.

Thursday, January 26, 2006 1:53 PM by Alex Lowe

# re: ASP.NET Forums Really Suck in FireFox

I will also state that the forums absolutely suck in Firefox 1.5

The forums are *pig slow* when scrolling up and down, and the search/advance page must have been designed by a summer student intern.

I think they now are faced with the problem of going back and rebuilding from the old version, this time with a clear plan in mind.







Thursday, January 26, 2006 1:53 PM by webber

# re: ASP.NET Forums Really Suck in FireFox

As we say in the WoW community (and elsewhere no doubt), Jeff: QFT.

Thursday, January 26, 2006 2:00 PM by Karl

# re: ASP.NET Forums Really Suck in FireFox

My computer struggles to show the page. When I see the memory usage by firefox.exe in Task Manager, its too much while I am visiting forums . Is firefox prefetching some of the link contents?

Thursday, January 26, 2006 2:23 PM by Vishal Monpara

# re: ASP.NET Forums Really Suck in FireFox

I never knew there was an nntp interface! Perhaps advertising the stuff more is more appropriate :)

To elaborate a bit more: a forum page, any thread listing, should appear instantly, like in 2, 3 seconds MAX.

In the netherlands we have tweakers.net, and their forums, http://gathering.tweakers.net has more than a million pageviews a day. I never experienced any slow downs on their forums. Ok, it's served by 4 servers or so and the database + site is stored in memory completely, but that's minor, compared to what amount of pageviews it can serve.

Now, if I browse to a page in forums.asp.net, it always is slow, I never get a thread shown in like 2, 3 seconds max, it always takes a lot longer. I then wonder why that is: it can't be .NET, as that's pretty fast, so it's either the hardware or bottlenecks in the software. Either way, I think a good look at what's wrong is IMHO not that bad.

Thursday, January 26, 2006 2:36 PM by Frans Bouma

# re: ASP.NET Forums Really Suck in FireFox

Karl: You mean quote for truth or quantum field theory? ;)

Thursday, January 26, 2006 2:43 PM by Jeff

# re: ASP.NET Forums Really Suck in FireFox

Odd, forums.asp.net is now suddenly a lot faster (threads show up in 4-5 seconds... )

Thursday, January 26, 2006 2:51 PM by Frans Bouma

# re: ASP.NET Forums Really Suck in FireFox

Hmm. The NNTP interface to forums.asp.net shows the postings up to 15-dec-2005, no posting later than that shows up in my newsreader. Strange...

Thursday, January 26, 2006 3:08 PM by Frans Bouma

# re: ASP.NET Forums Really Suck in FireFox

The NNTP interface is working for me with current postings. And it is very nice, although I still think the web UI should be "simpler" and speedier.

Thursday, January 26, 2006 3:13 PM by Paul Wilson

# re: ASP.NET Forums Really Suck in FireFox

Far be it from me to refrain from piling on CS. I haven't liked what I've seen in the code since it was .Text. But...

If it's taking a long time to scroll, is that really a problem with CS itself? Granted, more complex HTML takes longer to render, uses up more resources on the client, etc... But I've gone to some pig ugly sites (yahoo.com comes to mind) with some of the ugliest HTML I've ever seen in my life (tables with tables with tables and divs within more tables) and the only time I've had a scrolling issue is when
a) my system has been overloaded
b) they've had a lot of animated GIF's and/or Flash on the page.

I just hopped over to forums.asp.net in FF 1.5( running the webdev and Yahoo toolbar extension) right now to check. Picked the largest forum I could find (Getting Started) and had no problem scrolling. All I have open right now is 5 tabs in FF and VS2K5 (which is a memory pig if there ever was one) "Advanced Search" did take a while to load for me, but the search went pretty quick. I think the slow loading is due to the tree view. Really, who still uses a tree view. What is this, 1995?

So, to summarize. Loading the ASP.net forums in FF 1.5 works okie dokie for me.

Thursday, January 26, 2006 3:25 PM by Scott

# re: ASP.NET Forums Really Suck in FireFox

I ran a syntax validator over the front page. It was set to stop at 200 errors, it got to the limit. Mostly repeats of errors that are odd parts of the standard (in my view) ("nowrap = 'true'" instead of "nowrap = 'nowrap'" and "class = ''" type stuff). There was quite a lot of unneeded space taken by spurious space characters at the end of lines. (A great way to consume bandwidth!!)

Layout of code looked pretty clean except for some unnecessary line breaks within long tags.

Thursday, January 26, 2006 3:40 PM by Mike Gale

# re: ASP.NET Forums Really Suck in FireFox

The only problem I see with Firefox 1.5 is the above mentioned that you sometimes have to click Next twice. Other than that, the forum works as fast or faster as forums in general work, and I think the design is quite nice, and going back and forward is super fast?

Thursday, January 26, 2006 4:14 PM by Jonne

# re: ASP.NET Forums Really Suck in FireFox

Personally, my suspicion is the FreeTextBox control that they are using. I currently use it and it is VERY slow loading.

Thursday, January 26, 2006 8:08 PM by John Walker

# re: ASP.NET Forums Really Suck in FireFox

John: I'm not talking about pages with the FreeTextBox. And I personally use the FreeTextBox and don't have problems of this type. It definitely loads slower than other things (its a lot of javascript so that's the way it is), but it doesn't affect the entire page like this.

Thursday, January 26, 2006 8:40 PM by Paul Wilson

# re: ASP.NET Forums Really Suck in FireFox

I'll be honest the FF 1.5 problems are a mystery to me. We have had a couple of people report problem, such as what Paul is experiencing, but we can't figure out how to reproduce.

I just installed FF 1.5 on my DEV box and was unable to replicate the performance problems -- I even sent Paul a video/camtasia capture and he agreed that what I showed was very different from what he experiences.

We'd really like to solve this problem. I appreciate the fact that there is some frustration, but until we have a reproducable set of steps...

As for the performance, Frans, it performs and has performed very, very well. I suspect your problems may have more to do with the distanace of the network (were not using Akami servers inbetween) than issues with stored procedures (nice try <g>) or design. FWIW, much of the ASP.NET 2.0 design work I did was based on what is now in Community Server.

The NNTP service news://forums.asp.net will continue to be an option and we are *considering* enabling email too, i.e. ability to send and receive email to the forums.

Thursday, January 26, 2006 8:50 PM by Rob Howard

# re: ASP.NET Forums Really Suck in FireFox

FasterFox consistently shows < 2 seconds for any page over on forums.asp.net for me, and I have a shedload of extensions installed: http://jaysonknight.com/blog/archive/2005/12/05/5002.aspx

Run a tracert and see where the bottleneck is.

Thursday, January 26, 2006 11:35 PM by jayson knight

# re: ASP.NET Forums Really Suck in FireFox

"As for the performance, Frans, it performs and has performed very, very well. I suspect your problems may have more to do with the distanace of the network [than with other things]"
I've no idea why it's slower. If I go to the forums of anandtech.com, which are one of the largest forums in the world, and which run a commercial .NET forum package, the forums are very very fast, click a topic -> bang its there. No wait, nothing.

Looking at how the forums look at forums.asp.net and for example at anandtech is that at forums.asp.net, there are way more graphics in the layout of the forums.

Though what's odd is that yesterday, it loaded extremely slow (and no other internet activity was going on here) but now it's OK. Perhaps there are glitches in network connectivity or dips in performance here and there and Paul ran into one of them. I know the US of A is now asleep and perhaps that's the reason why it's fast, I'll try again later today to see if it makes a difference.

About the NNTP interface, I can't get it to read messages later than 15 october 2005 (I said december but it's october). Very strange. I do get a connection error first and the second attempt loads the data, I use XanaNews newsreader. Also weird is that whatever I fill in for a password, it doesn't matter. Perhaps that's the reason of the oddness I experience with NNTP and forums.asp.net.

Friday, January 27, 2006 4:21 AM by Frans Bouma

# re: ASP.NET Forums Really Suck in FireFox


I have experienced the same... I have run into scrolling issues on other sites when CSS was conflicting.

Also, the Click Twice for the Next (Or any page link) Button occurs only on the bottom pager not the top one, and I think it comes from the cell that you have it layed out in. It resizes after a click. You can also view the behavior by using the Web Developer Toolbar and choose Outline Table Cells. It is probably due to incorrect/Conflicting size for tables/cells. FF is less forgiving than IE.

The only other thing it may be, is that on the bottom pager you have the options button. Maybe something with that is causing an issue?...

Friday, January 27, 2006 8:56 AM by Brian Schmitt

# re: ASP.NET Forums Really Suck in FireFox


Frans: I guess the solution for you is to check the forums when the the US of A is asleep :)

I think one way to troubleshoot this issue is to load a page without rendering it like using a text based browser or your app and see if the whole html loads fast and time it. Then see if the images load fast. Turn off images in the browser and test. The rendering could be the bottleneck.

Do other Mozilla based browsers have the same issue? Try Netscape and flock.

Abdu

Friday, January 27, 2006 12:38 PM by Abdu

# re: ASP.NET Forums Really Suck in FireFox


*******************************
I tried to to use the forums again today and found them to even slower today than ever before !! they load slow and scroll slow.

Pig slow x 4!!

somebody fix those things - they do not work with Firefox 1.5

*******************************

Monday, January 30, 2006 7:31 PM by webber

# re: WilsonORMapper v4.2.1 Released -- Includes Sql2005 Row_Number Paging

How do you use a variable in the order by clause of the row_number() function?

Wednesday, February 01, 2006 12:29 PM by Hong

# re: WilsonORMapper v4.2.1 Released -- Includes Sql2005 Row_Number Paging

I don't use a variable for that -- O/R Mappers produce dynamic sql, some of it parameterized and some of it not.

Wednesday, February 01, 2006 12:56 PM by Paul Wilson

# re: ASP.NET Forums Really Suck in FireFox

asp.net forums SUCK ..period.
it takes them 3-4 hours to even show your post.
and by then, you probably figured it out.
Basically, if you are on a tight time budget, they are useless.


i dont know why they monitor it by hand when you can automate the process and show the posting right away as opposed to half a day.

Friday, February 03, 2006 1:47 PM by Jenny

# re: ASP.NET Forums Really Suck in FireFox

Jenny: Unmoderated forums tend to get spammed so much that they quickly become even more useless. Most questions that must be answered fast have actually already been asked and answered somewhere anyhow -- there are far too many that don't even search, but instead just post and expect others to do their work for them. On the other hand, when it really is something new that hasn't been asked and answered, then you also tend to value the answer when it does come.

Friday, February 03, 2006 1:57 PM by Paul Wilson

# re: ASP.NET Forums Really Suck in FireFox

oh yeah i understand, moderation is essential. But few hours is a bit long to wait. Every time i search and find question similar to mine, the results that come up also have 0 Replies. I guess what happens is that by the time the posting comes through, it ends up being pushed to the back...since the postings are time sorted.

If they did it fast enough, that would have been ok, the way it right now is not helping much.

Friday, February 03, 2006 2:06 PM by Jenny

# re: ASP.NET Forums Really Suck in FireFox

here is a good idea - display the posts based on the time when they are moderated and not originally posted.

anyways, pardon my ranting, i am just really annoyed by the lack of good forums

Friday, February 03, 2006 2:09 PM by Jenny

# re: Atlanta C# Users Group -- I Made It Tonight !

It was good to see you there, Paul - I'm sure we all look forward to seeing your presentation next month.

Monday, February 06, 2006 10:56 PM by Jerry Dennany

# re: Random Thought on Communication Skills

I'm no communicator, but maybe thats why said person is looking for someone to do his/her communication for them? :-)

Tuesday, February 07, 2006 2:15 PM by Travis

# re: Random Thought on Communication Skills

What where they actually trying to say? I guess I don't get it. :D

Tuesday, February 07, 2006 2:26 PM by Phil

# re: Random Thought on Communication Skills

They wanted a reply -- I don't think they wanted me to revert back to my former state, whatever that might be. :)

Tuesday, February 07, 2006 2:32 PM by Paul Wilson

# re: Random Thought on Communication Skills

Well it's fairly commonly used in (British) business correspondence - meaning approximately "reply on this subject"

Tuesday, February 07, 2006 2:38 PM by Joe

# re: Random Thought on Communication Skills

Why do those Brits have to keep corrupting English. :) By the way, I did look up revert on Dictionary.com just to make sure, and there was no usage that was noted that was similar to "reply". I do not know if it has British usage listed or not though.

Tuesday, February 07, 2006 2:44 PM by Paul Wilson

# re: Random Thought on Communication Skills

My OED has "to go back to a former subject of discourse" which is close. My accountant uses it in correspondence - I think it's a bit old-fashioned.

Tuesday, February 07, 2006 3:08 PM by Joe

# re: Random Thought on Communication Skills

People in India use it to mean "get back to"; I guess it has something to do with the British influence. I'm Indian, btw, but happen to disagree with the way this word is used.

Wednesday, February 08, 2006 11:12 AM by Kulin

# re: Random Thought on Communication Skills

Paul,

Did some Googling on the same..
http://www.wsu.edu/~brians/errors/revert.html

Wednesday, February 08, 2006 1:58 PM by Srikanth

# re: A Sampling of Recent Email Exchanges


That is awesome. I mean, you know, in a "I-can't-believe-the-world-is-full-of-idiots" kind of way. ;)

Thursday, February 09, 2006 6:18 PM by Jason Bunting

# re: Random Thought on Communication Skills

Hi Srikanth. Am so in tune with your music!! Indian-isms like revert and a whole list of others I've compiled during my 6-year sojourn through english as spoken in India makes me wonder how people view us

Saturday, February 11, 2006 9:02 PM by Inez

# re: Random Thought on Communication Skills

Srikant - just remembered... what about 'as per' and 'wherein'?

Saturday, February 11, 2006 9:05 PM by Inez

# re: ASP.NET Forums Really Suck in FireFox

Paul, You probably keep an eye on Rick's blog? He's just had a rant about it to. Re the moderation - I remember in the early days Community Server had a feature that only moderated the user for the first 10 (customisable) posts. Once they had 10 approved, they were unmoderated after that. I thought that was a neat feature. I wonder if it's implemented in the ASP.Net forums.

Wednesday, February 15, 2006 5:34 AM by Tim Haines

# re: ASP.NET Forums Really Suck in FireFox

In case anyone is wondering Rick who -- its Rick Strahl: http://west-wind.com/weblog/posts/4465.aspx.

Wednesday, February 15, 2006 5:41 AM by Paul Wilson

# re: A Sampling of Recent Email Exchanges

While I've never written anything that competes at the level of an O/R Mapper, it seems that there is often a similar exchange if you've authored any technical content:

Developer: I recently read your article discussing on GlobalThermoNuclear War. Could you tell me how to compile an x86-64 executible in Delphi?

Me: Huh?

Wednesday, February 15, 2006 7:59 PM by Jerry Dennany

# re: ASP.NET Forums Really Suck in FireFox

I have to agree with Jenny on the moderation part. Sometime, waiting for a few hours is a bit too long.

Manish Jadhav

Wednesday, February 22, 2006 3:07 PM by Manish Jadhav

# re: Visited Atlanta User Group with Jeffrey Richter

I noticed that, too - I was very suprised that the room was not full.

His talk was amazing. There are very few people with his ability to take a complex issue and distill the concepts into a few clear lines of code.

He's a great presenter, too.

Wednesday, February 22, 2006 3:31 PM by Jerry Dennany

# re: Visited Atlanta User Group with Jeffrey Richter

I have been meaning to attend user group meeting; however, I have yet to make it and usually justify it by saying, "that traffic sure does suck." I think that there are a lot of .NET developers in Atlanta. They either don't know about the meetings or don't want to make the sacrifice.

Thursday, February 23, 2006 8:43 PM by Ron Cotton

# re: Visited Atlanta User Group with Jeffrey Richter

I've been struggling for going on my third year now to get the word out about all the free training resources in general and user groups in particular (focusing, of course, on Atlanta) and I have to admit some level of frustration. We seem to always see the same faces. I have no idea how to get the word out to people who don't know that we exist, but the ones who do know and don't come out...all I can say is that I hope they're reading books, blogs, and everything else online to keep themselves abreast. If you're doing this kind of work professionally, how can you have no interest in improving your skills and opening yourself up to new ideas.

I'll be the first to admit that User Group presentations aren't always fascinating, heck - they're not even always correct in the technology they present. However, I stand by them as one of the best ways to learn new things because people, the social animals they are, talk to each other about the new and cool stuff.

I can't imagine being successful in this field without following UGs, blogs, books, etc.

Tuesday, March 07, 2006 11:43 AM by Matt Ranlett

# re: Speaking at the Atlanta C# User's Group on March 6

Thanks for the excellent introduction to OR Mappers. I have to admit that I'm personally impressed. I've "known" what OR Mappers are for about a year or so now. I'd actually used one (an Ibatis type) for nearly five years without knowing what I was using. Now that I'm in a new job where I can actually write "object" code and I'm forced to handle all the CRUD stuff manually, I can really see how a quality OR Mapper can be helpful.

This presentation showed me, in extremely clear language and wickedly pointed demos, how much time and effort I'm spending/wasting on trivial database access just to keep my application glued to the data.

I'm about to start working with the Wilson OR Mapper in my company's application, starting TODAY!

Tuesday, March 07, 2006 11:47 AM by Matt Ranlett

# re: Send and Receive Money with Your Cell Phone

Europeans and Asians will be familiar with spending money via their cellphones, but receiving money? I'm not sure I see the use case for that. Security in this context worries me (especially considering the lack of security on phones in general - consider some recent highly public hackings like Paris Hilton)

Tuesday, March 07, 2006 11:49 AM by Matt Ranlett

# re: Send and Receive Money with Your Cell Phone

Their answer to security is that your phone receives a call-back where you have to confirm payment with your PIN.

Tuesday, March 07, 2006 12:54 PM by Paul Wilson

# re: Presentation and Code from my Intro to O/R Mapping Talk

Hi Paul,

It was a great presentation. I was really surprised to find out that it was 9PM when the question answer session ended. Time really flew by very quickly. Obviously, there were many who enjoyed the O/R mapping concepts.

Rama Krishna

Tuesday, March 07, 2006 3:22 PM by Rama Krishna

# re: Send and Receive Money with Your Cell Phone

So, got your XBox already?

Wednesday, March 08, 2006 3:31 AM by Rod

# re: Send and Receive Money with Your Cell Phone

No -- and never will at this rate. :) My kid has a PS2 anyhow, which is far better for his age, since the XBox doesn't have much for the younger scene.

Wednesday, March 08, 2006 5:15 AM by Paul Wilson

# re: Presentation and Code from my Intro to O/R Mapping Talk

Hi, Paul:

I definitely agree with Rama. It was a great presentation. For the record, I thought your speaking skills were very good. You are the first person I've heard describe themselves as an O/R Mapper Evangelist! I think this is one of the key topics today regarding the subject of applications development. I'm trying to do my own internal evangelizing at my company on this very subject. Your presentation provided me with some fantastic insights into framing good arguments on why this subject is worthy of serious consideration.

I sincerely appreciate your time Monday evening. Thanks again.

Ken

Wednesday, March 08, 2006 11:21 AM by Ken Adcock

# re: Presentation and Code from my Intro to O/R Mapping Talk

Why do you say you're not a good presenter? You are clearly a subject-area master, and you speak very well!

Wednesday, March 08, 2006 11:25 AM by Eric Engler

# re: Presentation and Code from my Intro to O/R Mapping Talk

Paul,

You should really considering doing a podcast of such a talk. I think people hearing an expert such as yourself dispelling the O/R mapping myths would be a boon to all of us who are trying to convince our organizations that OR mapping is a good thing and not some new toy for OO dreamers.

Wednesday, March 08, 2006 2:06 PM by Daniel Auger

# re: Presentation and Code from my Intro to O/R Mapping Talk

Despite your protests to the contrary, it was a really great talk. The combination of interesting topic and impassioned speaker made for an interesting evening.

Your points on measured performance with O/R mapping were especially interesting. This is the kind of information that potential O/R users are really looking for.

Tuesday, March 14, 2006 12:09 AM by Jerry Dennany

# re: Presentation and Code from my Intro to O/R Mapping Talk

One thing that would greatly help the O/R Mapping cause would be to stop pushing the "write fewer stored procedures" point of view.

ORM can be very effective when used in conjunction with stored procedures, and stored procedures are all about attack surface area.

In order to expose client_order to my end user with most ORM systems, I must allow the process performing the ORM to have full access to the client_order table. And yes, it really still is most ORM (disappointingly, since I can remember having this same discussion with a manager about three years ago and coming to the same eventual conclusion).

What really is needed is CRUD stored procedures that can take an opaque token indicating an authenticated user, so that the database can prevent any user that doesn't have an opaque token from seeing any client_order, and so that the database can limit client_order to only those that a specific token ought to have access to (and write audit logs if there is an attempt outside the security rules).

In this way, even if the process containing the ORM is compromised, the database remains resiliant against attacks, and is not, itself compromised.

An ORM system that both supports stored procedures and supports the factory pattern is capable of providing this feature. There are a handful of ORM's that do, in fact, provide this level of support.

ORM in and of itself is a tool. All tools have their uses. In a secure code base, an ORM that does not support stored procedures is a serious liability.

I would like to see more ORM's gain more support for common secure database practices, such as stored procedures (in general) and stored procedures with opaque tokens (in particular).

I would also like to see more ORM's focus more on the modelling relationships side of things and less on the "you'll never have to write a line of SQL again" aspect -- I think that you'll have a lot better luck pushing forward that way.

Thursday, March 23, 2006 7:12 PM by Dave Bacher

# re: Presentation and Code from my Intro to O/R Mapping Talk

Hi Dave:

I strongly agree that O/RMs should support stored procs -- and by the way mine does. :) I don't however think that a stored proc is necessary for security -- its very easy to use an application role and only give it the proper permissions so that other users do not have those abilities. But nonetheless, I do understand the concern, and even if its not there are still times when a stored proc is best, if not required, so I do agree stored procs should be supported.

I guess my opinion is that using an O/RM with stored procs in all cases, as opposed to just a few special cases, isn't accomplishing anywhere near as much. Its not as flexible at all, nor is nicely loosely coupled to promote better maintenance and code simplification. And of course its not as portable, although I will grant you that many people don't care about that one -- but the others are a huge deal to me, especially flexibility -- the ability to filter and sort on anything, with paging even.

Thanks, Paul Wilson

Thursday, March 23, 2006 7:37 PM by Paul Wilson

# re: Atlanta .NET User's Group on March 27 with Greg Young on AOP

Only reason I am showing up is for the snacks!

:)

Greg

Sunday, March 26, 2006 2:51 AM by Greg Young

# re: Anyone heard of Login problems for some IE users?


Install Fiddler on the machine that has the problem.
Confirm that cookies are being sent by the server
Check if cookies are being received by the browser (look at the request header)

If you don't have access to the machine, create a simple test site that sets and reads a cookie on the same server that the LoginControl page is running on.

Tuesday, April 04, 2006 3:06 PM by Raj Kaimal

# re: Anyone heard of Login problems for some IE users?

I haven't heard of anything like this before. Let me know if you have a repro.

One thing you might want to check is whether you are deployed across a web-farm, in which case you need to make sure you have the same machinekey across both machines. That is one reason why the login can be lost (if the browser switches to the other server the cookie will fail if the key isn't the same).

Thanks,

Scott

Tuesday, April 04, 2006 3:22 PM by scottgu

# re: Anyone heard of Login problems for some IE users?

Hi, Paul: Some software firewalls (e.g., AdSubtract, Norton, ZoneAlarm, etc.) block cookies, so in addition to ensuring that cookies are enabled in your users' browsers, make sure they are not running third-party software that blocks cookies.

Tuesday, April 04, 2006 3:37 PM by Phil Weber

# re: Anyone heard of Login problems for some IE users?

Its not a web-farm, and so far the two affected users that tried my bare-bones test login page were not affected in it. So I would like to say that it must be my code, but I can't really think of any of my code that would cause this either, precisely because I'm using the Login control and don't really have much of any code related to this. And of course it works for me and most other users, so I'm really dumb-founded -- but its probably something I've done somewhere.

Tuesday, April 04, 2006 3:38 PM by Paul Wilson

# re: Anyone heard of Login problems for some IE users?

Ran into a similar problem a few months back. I am trying to recall the details, but I am not sitting in front of the project right now.

However, I think our problem had something to do with Master Pages and the login.
So my question is, are you using Master pages in this project?

Brian

Tuesday, April 04, 2006 3:55 PM by Brian Schmitt

# re: Anyone heard of Login problems for some IE users?

Hey Brian:

Yep, definitely using Master Pages, and my bare-bones test did not. Please let me know when you can recall more details, and if nothing else I'll redo my bare-bones test to include a Master if you can't recall the details.

Thanks, Paul

Tuesday, April 04, 2006 4:22 PM by Paul Wilson

# re: Anyone heard of Login problems for some IE users?

I've had issues when a single pc is used by multiple users.
When a user logs off they are taken to the login page with their previous location listed so they can go directly back there when they login.
The problem is when another user logs in (same IE session, IE never shut down) it takes that user to the page the last user left off. Worse yet (the site is used to build custom cards) on the preview page it shows the card that the last logged in customer built (I'm not sure why I'm gussing browser cache). I worked around this for now (not to happy with solution) by immediately redirecting all logins to the default home page. I would like it to remember the last logged in user so if a new user logged in it wouldn't redirect them to where the last user left off especially showing them what the last user did. Perhaps even easier just remove the last location from the url when a user signs off - that way people wanting to bookmark a particular page could still use that feature versus me being forced to redirect them to the home page. I suppose I could write code to remember last logins and all but I would prefer that be built in.

Tuesday, April 04, 2006 8:01 PM by Chad Biggerstaff

# re: Anyone heard of Login problems for some IE users?

I also had the same problem with a website I built for high school students testing. I recieved tons of email saying that they are not able to log in. But I used their credentials and worked fine for me. Not sure what was the main reason but I don't think there should be any problem with the Login control.

Monday, April 10, 2006 12:32 PM by AzamSharp

# re: Using Reflection (and O/R Mappers) with Nested Classes

I gotten bitten by it recently because I didn't make the difference between the way C# handles it and the way the framework API does it.

I'm not sure why the distinction is important, though.

Monday, April 10, 2006 5:14 PM by Ayende Rahien

# re: VB will have the same From/Select LINQ syntax as C# Afterall

And, incase anyone missed it, LINQ will have a mysql-like LIMIT syntax:
http://codebetter.com/blogs/karlseguin/archive/2006/04/17/142964.aspx


.NET Team +1
SQL Server -1

Friday, May 05, 2006 4:10 PM by Karl

# re: VB will have the same From/Select LINQ syntax as C# Afterall

Interesting. I thought that this had been resolved along time ago so I am surprised to just now hear about it.

Sunday, May 07, 2006 2:03 PM by Wallym

# re: Interested in Astronomy -- Try Slooh.com's Twin 14" Scopes

Hey Paul - Nice to learn a little more about what spins your wheels. :-) It's great to hear from tech writers about "here's a non-IT thing that makes me happy".

Thursday, May 11, 2006 6:06 PM by Tim Haines

# re: Tim Doesn't Like Live.com -- And I'm Not Sure About Atlas

Paul,

It is strange that you feel that way. I think any complete web development framework should have some libraries on the client side. ASP.NET has been lacking this till now. Any kind of Ajax application requires significant amount of JavaScript code. Google Calendar and other Google apps do have lot of JavaScript code. There is no Ajax without JavaScript.

I don't think you can call something an Ajax framework without client side libraries and tools.

I think Atlas is a step in the right direction. It provides a cross browser compatible layer, which is its great strength in my opinion and ability to access web services from JavaScript.

I have not been that crazy about the Data classes and XML-Script in Atlas but you can easily run Atlas in without Script Components.

As for live.com, it is slow but remember that Atlas is still in beta (or probably alpha). I am sure that problems will get sorted out by the time it is released.

Thursday, May 11, 2006 8:29 PM by Rama Krishna

# re: Tim Doesn't Like Live.com -- And I'm Not Sure About Atlas

Hi,

for www.live.com I'm agree with you it's horribly to slow.

But for Atlas I'm not agree at all. Ajax can just make some request to the server, how do you do to display the response ? you have to use JavaScript and a veritable framework to make what you want is cool :-)

ClientSide != Ajax, we can do a lot of thing with JS without use Ajax and we need a framework : Atlas.

for Rama, live.com don't exactly use Atlas. This is a part of an old build of Atlas.

Thursday, May 11, 2006 9:02 PM by Cyril

# re: Tim Doesn't Like Live.com -- And I'm Not Sure About Atlas

I agree. I think that is why I'm such a huge fan of AjaxPro.NET (http://www.ajaxpro.info/)

Ajax.NET builds the perfect bridge between your JavaScript and .NET code. It takes care of the HttpRequest and the serialization/deserialization of objects when passing them to your server code. But other then that, it leaves all the UI up to you.

It seems like Atlas is going to start baiting people to use the framework to accomplish UI (JavaScript) features.

Thursday, May 11, 2006 9:39 PM by INeedADip

# re: Tim Doesn't Like Live.com -- And I'm Not Sure About Atlas

Live.com does have some performance issues, but that is less about Atlas and more specific to the amount of stuff Live.com is trying to accomplish (being an aggregated client portal that pulls information from lots of places and allows rich user personalization).

Atlas provides both a client and server framework for building rich web apps. It does not require you to write client-side code at all if you don't want to (which it sounds like you don't). You should checkout the video I made on http://atlas.asp.net as an example of building a data driven task list app using Ajax updates. Super simple to-do, no javascript authoring required, and a much slicker interface.

The power of Atlas is that you can optionally write client-side code if you want (or leverage server-side controls that encapsulate that for you). The server-side control encapsulation is particularly powerful -- since it means that you can get a much richer UI and advanced capabilities in a structured server-side way (which is ideal for a lot of apps -- especially business apps). I'd really recommend checking out the Atlas Control Toolkit download for examples of how this is done: http://weblogs.asp.net/scottgu/archive/2006/05/07/445530.aspx

Hope this helps,

Scott

Thursday, May 11, 2006 10:00 PM by scottgu

# re: Atlanta Code Camp 2006 Registration is Open

Can I ask what provider(s) you'll be covering?

Thursday, May 11, 2006 10:45 PM by Walt D.

# re: Tim Doesn't Like Live.com -- And I'm Not Sure About Atlas

I would have to agree...
I think there is alot of 'bloat' that comes with it. It has to be pushed down for every new site that you visit, creating a slow experience.

I really like what FF offers with XUL for client side work.

Thursday, May 11, 2006 11:00 PM by Brian

# re: Tim Doesn't Like Live.com -- And I'm Not Sure About Atlas

Nobody's making you use it, there are other libraries available.

Thursday, May 11, 2006 11:25 PM by Dave

# re: Tim Doesn't Like Live.com -- And I'm Not Sure About Atlas

Did you ever had a look on the traffic when visiting live.com? There are enough internet users that have a slow network connection. See my article at http://weblogs.asp.net/mschwarz/archive/2006/04/04/441827.aspx.

Regards,
Michael

Friday, May 12, 2006 1:51 AM by Michael Schwarz

# re: Atlanta Code Camp 2006 Registration is Open

I've got samples for Membership, Roles, and SiteMap that we'll look at.

Friday, May 12, 2006 5:02 AM by Paul Wilson

# re: Tim Doesn't Like Live.com -- And I'm Not Sure About Atlas

In Holland Scott did the keynote of the Dutch Developer Days on Atlas. At the end of the day all that everybody was talking about, was his Atlas demo and the amazing ease of developing rich client applications. And with the release of the new Altas control set this has become even better.
Atlas may or may be not a perfect Atlas implementation, I actually really don't care. With Atlas I can increase my productivity because I don't have to worry about javascripts and cross browser compatibility. And the Atlase framework is still expanding with cool new stuff.
But most of all, I think the best thing about Atlas is the way it's developement team has interacted with and listened to the community. A lot of people are really happy with this stuff, so why call it "a bigger problem" when you haven't even really tried it yourself?

Friday, May 12, 2006 6:59 AM by Martijn

# re: Tim Doesn't Like Live.com -- And I'm Not Sure About Atlas

Martijn,all is fine if don't see it's internals-use that you get out of the box.But if you try to develop custom components,you'll see that it's not such an easy task(if you're not microsoft of course;-)Large part of Atlas is asp.net plumbing-makes asp.net control model looks more ajax'ish,teach old dog new tricks as I can understand.Plus,they provide websevices plumbing(which is nice;-) and client side framework to tie these up together and bring .NET BCL to the browser.I'm very interested in client side of framework not directly related to server side=pure ajax style(think http handlers/modules and client javascript),so I don't need all this burden Atlas provide and from client side point of view I see more "close"(by spirit) client side alternatives-prototype/jquery.com like.If you asp.net developer and don't know much about javascript+discover xmlhttprequest just recently,Atlas is a way to go,no questions.But if you know internals of javascript/xmlhttp mechanism,it seems to me there's more "client side"/javascript oriented frameworks than Atlas exists.To create "pure" ajax framework ms need to rethink/reimplement asp.net framework as whole considerably,and that's not as simply as patching through updatepanel and bringing c#/BCL programming model to browser-browser/javascript is different by nature and has it's own stregth sides anyway.

Regards.
P.S.
Look at
http://www.jquery.com/blog/
to get idea about what I mean under "client side";-)

Friday, May 12, 2006 10:19 AM by Andrey Skvortsov

# re: Tim Doesn't Like Live.com -- And I'm Not Sure About Atlas

I think PageFlakes.com does what live doesn't, and that's use the atlas library to make the client actually feature rich. I really believe they do it right from a user perspective, and Live.com tries to do it just from a theory standpoint. What I mean by that is an extension of what Paul said, there's more to using Atlas in the right context. Both sites essentially try to do the same thing, one succeeds and one fails, because pageflakes ensures to take it from the user perspective.

That said, my homepage is still google.com/ig

Friday, May 12, 2006 10:24 AM by Robert Hinojosa

# re: Tim Doesn't Like Live.com -- And I'm Not Sure About Atlas

The simplest way I can explain what I mean is to simply ask anyone interested to compare what other Ajax for ASP.NET libraries do compared to Atlas. And by that I don't mean to imply that Atlas cannot do something more or different, but I get the impression that Atlas forces you too much down this other path. I do like having some JavaScript libraries already written for me, but if the result is slower than a simple postback, or other Ajax libraries, then what's the point.

Friday, May 12, 2006 10:51 AM by Paul Wilson

# re: Tim Doesn't Like Live.com -- And I'm Not Sure About Atlas

I think you should set aside some time to look at Atlas Paul. If you want a network library that allows you to transfer .NET data types between client and server you can just write this:

<script src="atlascore.js"/>
<script src="mywebservice.asmx/js"/>

And then you can invoke methods on the remote web-method really easily (and lightening fast):

MyWebService.SomeMethod(arg1, arg2, callbackmethod);

function callbackmethod(results) {
// do something...
}

That is all there is to it.

Atlas is layered so that you can then use additional libraries on top -- bu there is no need to download them or use them if you don't want to.

I'd really recommend setting aside sometime to learn about it. If you want me to send you a simple set of slides + samples to walkthrough feel free to send me email (it will only take you about an hour to walkthrough it before you understand all of the core parts -- it is easy to learn).

Hope this helps,

Scott

Friday, May 12, 2006 11:00 AM by scottgu

# re: Tim Doesn't Like Live.com -- And I'm Not Sure About Atlas

I personally have found Atlas to be extremely easy to use and don't think it takes me down a different path. I've been doing Ajax-like functionality for at least 6 years now and it's never been simpler. I thank the ASP.NET team for removing the cross-browser compatability layer from me. This alone has saved me a tremendous amount of time. I think those who complain about Atlas are missing the spirit of it. I've used AJAX.NET fairly extensively (which I also like), but ATLAS seems more natural to me.

As an enterprise application developer, I take comfort in knowing that I'm creating a more responsive application (at least perceived responsiveness) and my users have definitely noticed the improvement in the user interface. We will all just have to whether the abuse of making everything Ajaxified. There's a time and a place for it and most developers are not equipped to make this decision correctly. Find yourselves a good UI person and make him your pal! It's been a long time coming for something like this. I'm glad I didn't have to switch to Ruby on Rails - Thanks Scott and Nikhil!

Friday, May 12, 2006 6:30 PM by John Cortez

# re: Speaking at the Atlanta Code Camp on ASP.NET Custom Providers

So, if I'm, like, really early, do I get my pick?

:)


See you at the code camp!


Friday, May 12, 2006 11:18 PM by Jerry Dennany

# re: Interested in Astronomy -- Try Slooh.com's Twin 14" Scopes

I took an astronomy class my freshman year in college, and always thought the topic was fascinating (even though it rarely pays the bills).

My favorite line from my ASTR 101 prof:


"This is the most interesting 'A' that you will ever earn."

How correct he was, too.

Friday, May 12, 2006 11:21 PM by Jerry Dennany

# re: Tim Doesn't Like Live.com -- And I'm Not Sure About Atlas

Paul, I can echo some of your feelings even though I've spent a fair amount of time with ATLAS. Microsoft always has grand plans and instead of gradually rolling out tools that are easy to grasp and integrate, they push out new frameworks that require complete re-architecting. And that's what bugs me about ATLAS.

There's lot to ATLAS, though, and to give Microsoft credit they are providing a lot of different options for approaching AJAX development that ultimately put you in control and let you choose what level you want to work at. If you want to go low level and do your coding at the JavaScript level and use ATLAS as a service level interface you can. Or if you want to go full bore, using server side controls that generate client script markup - you can do that too. There are a lot of choices there. Then there are the server controls that allow you to use existing page layout and controls and AJAX enable them which is very heavy on wire traffic but can still be an excellent solution in a number of scenarios.

I see two problems here - there's a lot to this, and while it all demos real nice, right now at least if you do real work you hit the limitations of abstraction very quickly and a lot of these dead ends seem to simply have not been thought all the way through. A lot of folks are going to start down that path and code themselves into a dead end because it looks so easy nobody'll bother to research what works and what doesn't.

The client side architecture is hideously complex and difficult to wrap your head around too. If you think control building with ASP.NET in general is not exactly trivial, wait til you start building ATLAS enabled controls - lots of fun especially with the current state of documentation.

It's a mixed bag, but it's early. And maybe that's part of the problem. As usual many people see ATLAS as the only solution even though it's not even in beta just because it comes from Microsoft. There are other viable choices out there that are easier to work and in full release today...

Saturday, May 13, 2006 3:51 AM by Rick Strahl

# re: ASP.NET Custom Providers Presentation and Sample Code

Thanks Paul. Your presenation was great and helped me clear up a few issues I was having. Thanks for letting us know baout the source code being released too!

Monday, May 15, 2006 7:03 PM by Chris Love

# re: Introducing the WilsonORMapper DataSource Control

Great work Paul!

Once again you've raised the bar on simplicity!

Thursday, May 18, 2006 3:37 AM by Vladan Strigo [MVP]

# re: ASP.NET Custom Providers Presentation and Sample Code

Hi,

This is my first foray into ASP 2.0 and after following your guide (in Readme.txt) I get the following error:

The type or namespace name 'Wilson' could not be found (are you missing a using directive or an assembly reference?)

That highlights this line:

<add namespace="Wilson.Providers.Framework"/>

Do you have any tips on what I'm obviously doing wrong?

(I'm using the Visual Web Developer 2005 Express Edition.)

Thanks in advance,

Jose

Friday, May 19, 2006 7:59 PM by Jose

# re: ASP.NET Custom Providers Presentation and Sample Code

Hi Jose:

My first thought is to ask you if you have compiled / built the solution? If not, then that would certainly be an error that I would expect. Otherwise, I'm not real sure what limitations the Express Edition may have, so that may or may not be part of the problem. One last thought, I removed most of the binaries (dlls) to make the download smaller, but I could send you a version with the compiled binaries to see if that helps if you send me an email. That might help if there are limitations of the Express Edition, but if that's the case you probably aren't really going to be able to do anything this advanced in the first place. This also isn't exactly something basic to be starting with period.

Thanks, Paul Wilson

Friday, May 19, 2006 9:21 PM by Paul Wilson

# re: Introducing the WilsonORMapper DataSource Control

I tried the test web page in the solution provided in the download and get the following error:

An instance of type 'Wilson.ORMapper.Internals.Context' was being created, and a valid license could not be granted for the type 'Wilson.ORMapper.Internals.Context'. Please, contact the manufacturer of the component for more information.

Sunday, May 21, 2006 12:47 AM by jdn

# re: Introducing the WilsonORMapper DataSource Control

I should have pointed out that the included WilsonORMapper is of course the demo version, which means it only works inside the VS debugger. Just running it without the debugger will rightly result in that exception since that is what keeps you from using the demo version in production. So try it all you want in the debubber, and you can certainly modify and use the source code with something else if you find it useful but don't want to subscriber for $50 to get the ORMapper.

Sunday, May 21, 2006 10:31 AM by Paul Wilson

# VB 6.0 application on Citrix

I may be sounding novice in asking this question, but would like to know:
Is there any specific coding we need to do in our existing application ( mine is a vb 6.0 appln) so that it runs w/o problems in an citrix enviro?

prompt reply will be appreciated.

Thanks
LS

Tuesday, May 23, 2006 7:03 AM by LS

# re: Running .NET WinForm Applications on Citrix

There's just a few things, although I may not recall the exact list either, so I would still recommend you looking this up officially (I know I've seen such a list online and in books in the past).  The things I recall are that you must not assume local file paths -- instead you should use the appropriate APIs to get the user's assigned folder on the network.  I think that you were also not allowed to use the registry to store information, or at least you were limited in some  very real ways.  There could also be some issues with permissions if you assume users have more than the minimal assigned -- so overall you should keep in mind that users are not working in an unrestricted local environment.

Tuesday, May 23, 2006 9:07 AM by PaulWilson

# re: .NET Memory Management and Garbage Collection

Paul, great article.  We are in a similar situation.  We're running a large enterprise .Net app with datasets loaded into a 3rd party control suite (mostly grids) on an 8 box Citrix server cluster.  Where our old VB6/Access app could run 20 concurrent users, the new .Net/SQL Server app has trouble with more than 5 or so.  As a stop gap workaround we've used TrimWorkingSet to force deallocation of memory at certain key process points until we can put in more permanent and programmatically sound fixes with our next major release.

Dim Procs As Process() = Process.GetProcesses()
               If Procs.Length > 0 Then
                   For Each Proc As Process In Procs
                       If Proc.Id = pidTarget Then

                           Dim ipMax As New IntPtr(1000000)
                           Dim ipMin As New IntPtr(500000)

                           Proc.MaxWorkingSet = ipMax
                           Proc.MinWorkingSet = ipMin
                       End If
                   Next
               End If

Only issue here is that this has to be run under Admin credentials.  I certainly hope your users don't have Admin rights on Citrix so options are a) shell out a new process with proper security context from the primary app or b) run as a timed service on each citrix box.  I know this not an optimal solution by far but as a finger in the dike it seems to be working so far.


Wednesday, May 24, 2006 11:31 AM by John Cobb

# re: The Truth about Stored Procs and O/R Mapping

Amen!

Saturday, May 27, 2006 12:10 PM by Steve

# re: The Truth about Stored Procs and O/R Mapping

Very well said.

Saturday, May 27, 2006 1:12 PM by Thomas Tomiczek

# re: The Truth about Stored Procs and O/R Mapping

Nie article and amen to a debate that will unfortunately never die.

Saturday, May 27, 2006 3:38 PM by Gregor Suttie

# re: The Truth about Stored Procs and O/R Mapping

Apparently many in the Stored Proc only crowd have never coded in the Java community where O/RM is much more prevalent.

Saturday, May 27, 2006 4:50 PM by Joe Brinkman

# Interesting Finds: May 28, 2006 AM edition

Sunday, May 28, 2006 11:45 AM by Jason Haley

# re: The Truth about Stored Procs and O/R Mapping

Without religious wars, some people will have nothing to talk about.  Well said!

Monday, May 29, 2006 1:31 AM by Aaron Feng

# Convert.ChangeType doesn't handle nullables

I had an assembly, originally written against .NET 1.1 and now running
on .NET 2.0, that tried to convert...

Wednesday, May 31, 2006 11:41 AM by Peter Johnson's Blog

# re: Weird Session State Problem and Computer Names

I had a similar issue and was stuck with it for more than one month.. I had no clue what was going on, since the IIS and DNS settings were correct.. infact I turned off the antivirus software too.. Anyway I was able to wrap my proj, only after I went thru ur blog.. Thanks a lot for this information.

- Senthil Babu

Wednesday, May 31, 2006 11:47 AM by Senthil Babu

# Deploying .NET WinForm Applications on Citrix

Does anyone have any thoughts on deploying the WinForm app in a Citrix environment?  Specifically how to get around locked assemblies?  Our current solution is to kick everyone off the server and then copy .dll's.  Since this is a 24x7 operation, not very convienient.

Wednesday, May 31, 2006 12:45 PM by Jan

# re: The Truth about Stored Procs and O/R Mapping

Does multiple db login mean that the application on end-user's computer has a direct connection to the database?  I am guessing that if the same company has gotten blasted (or I should "blaster" -ed) by virus attacks if they are using MS SQL Server (even other DB platforms are not immune to worms and other attacks).  

Wednesday, May 31, 2006 3:30 PM by David Parslow

# re: The Truth about Stored Procs and O/R Mapping

David:  That depends on the implementation.  A traditional client/server app would have each client computer having a direct connection to the database, but a web app or other distributed enterprise app would have all the connections coming from a server computer.

Wednesday, May 31, 2006 3:51 PM by PaulWilson

# re: The Truth about Stored Procs and O/R Mapping


The one thing I will say for stored procedures is that they can be used to better define a contract for the data source which isn't always a bad thing.

That said there is no reason why the two should be mutually exclusive .. only use a hammer when you have nails :)


Thursday, June 01, 2006 5:01 AM by Greg Young

# re: The Truth about Stored Procs and O/R Mapping

I have been using your mapper for 18 months now in both personal and professional projects, without stored procedures (not because I am necessarily anti-sproc, but because it is just easier and I have not needed them generally) and have 'converted' a lot of my peers to using it as well. None of them complain about not being burdened with writing TSQL and ADO.NET code (except where it makes sense) - I am continuing to win people over because, as you point out, their "apps are just as secure and performant as they were before O/RM, but far easier to build/maintain." I just figure those that want to let their fears get the best of them are just going to make it to market that much later than I will, with a product that isn't necessarily any better. I can't believe people don't do the very little research necessary to discover the real truth about things, but would rather remain in the dark; to each his own!

Thursday, June 01, 2006 2:46 PM by Jason Bunting

# Mr

Something we were considering was each user having their own \bin folder on a shared file server (This is a users F:\ drive in our mappings).

This would mean each user would be running their own DLL's & we could force updates to the F:\bin folder whenever we wanted. We have an application launcher program that checks versions when starting a process and forces updates where nescessary.

Now this does 'work' but I think it introduces a number of problems. In particular, there is a perf hit when assemblies are loaded at run time. If your network has a blip, the app would probably fall over. Also, I have been suffering with the 'External Component has thrown an exception' error which I'm fairly certain will be resolved by deploying locally.

I was weighing this up as a control vs performance offset...I would like to be in control of the applications' deployment and any hotfixes I needed to apply...but, I think instead I'm just going to deploy on C and be really careful with application updates. We have to schedule in the updates with the Citrix farm team who then update a single server and roll out the image to the farm. This means updates can only take place out-of-hours & we have to be really careful with our QA stage...!

Is something like this not possible in your 24x7 environment? Is there never a point when there are no users using the assemblies?

Friday, June 02, 2006 7:54 AM by Dylan Morley

# re: Running .NET WinForm Applications on Citrix

One of the main reasons for using Citrix is to simplify deployment, so I can't imagine ever creating user specific deployments as you've describe.  As for how to manage deployment, my experience is that companies that invest in Citrix also invest in the appropriate people with experience in Citrix deployments, which typically involves some serious planning.  I do not have any idea what all the options may be, but I have seen weekly windows for Citrix maintenance, usually at times to affect the fewest people in a global company.

Friday, June 02, 2006 8:35 AM by PaulWilson

# re: Anyone heard of Login problems for some IE users?

I have trouble logging into your site if I have the 'remember me' chack box enabled in IE.  I log in and the page refreshes as it was with no indication of being logged in.  It works fine with the 'remember me' checkbox disabled.  

It works either way with FireFox.....

Friday, June 02, 2006 7:14 PM by wjb2

# re: Tim Doesn't Like Live.com -- And I'm Not Sure About Atlas

"There are other viable choices out there that are easier to work and in full release today..."

Like...?

I find it interesting that people have these reactions.

1. javascript is ugly and painful.  Powerful, no doubt, but problematic
2. asp.net 'postbacks' - this constant server side trip which reloads an entire page, regardless if all you need is one section updated...

...that is the key, Atlas gives you a way to do partial rendering.  Smooth transitions - ie. you sort a gridview - the entire page reloads!  Instead, with the Atlas updatepanel, only the grid reloads.

Tell me what is bad about that???

I think it's just a different world - users want a better client side user experience.  

Saturday, June 03, 2006 12:44 AM by Steve

# re: Check out my "Real" NHibernate Example App

This is the first NHibernate (or Hibernate) example that I was able to run successfully.  I ran it using VS.NET 2005 using MSDE for the database.  The only change I made was to update App.config with the database instance I configured for this example (as opposed to using the default instance).  The example is sufficiently rich in features to make it a good basis for further study in understanding the Hibernate configuration and programming details.  Thank you very much for taking the time to post this example.

Saturday, June 03, 2006 7:38 PM by Al

# re: The Truth about Stored Procs and O/R Mapping

Is it because stored procs can offer an 'interface' to a complex normalized database ?

Tuesday, June 06, 2006 5:54 PM by Steve

# LLBGen Example Using ASP.NET 2.0

Frans Bouma is the creator of the very popular LLBLGen Pro O/R mapper for .NET.&amp;nbsp; He just posted...

Friday, June 09, 2006 9:23 PM by ScottGu's Blog

# re: Is .NET v3.0 (aka WinFX) going to be Synced with C# 3.0 (aka LINQ) ?

See Jason Zander's blog: http://blogs.msdn.com/jasonz/

LINQ (and most likely ADO.NET 3.0) will not be part of .NET Framework 3.0, but will be released together with Orcas.

Saturday, June 10, 2006 2:24 PM by Martin Ennemoser

# On Second Thought...

Earlier today, I was working on my article on the timeline for .NET releases over the next 18 months....

# re: Is .NET v3.0 (aka WinFX) going to be Synced with C# 3.0 (aka LINQ) ?

My understanding is that only the original WinFX content will be in .Net 3.0; i.e. WCF, WF and WPF.

LINQ, ADO.NET vx etc will probably be a part of v3.5 / v4.0 er whatever they decide to name it :)

Saturday, June 10, 2006 5:25 PM by Morten Abrahamsen

# re: Is .NET v3.0 (aka WinFX) going to be Synced with C# 3.0 (aka LINQ) ?

I don't like the merging of WinFX with .Net 3.0.  To me, .Net is a platform-independent framework, akin to Java the Framework, with WinFX being a product-specific (Windows) layer of code built upon that, much like GDI would sit on top of the C++ runtime (and possibly STL), with .Net being a richer runtime.  The confusion as each component of what is now the ".Net Framework" is only going to get worse as the increasingly numerous pieces of the puzzle progress at differing rates.
But that's marketing people for ya.

Saturday, June 10, 2006 9:53 PM by Keith Patrick

# WilsonORMapper DataSource Control

Sunday, June 11, 2006 2:01 AM by ASPNETWorld.com Blog

# re: Service Pack 1 for .NET v1.1 Broke My ASP.NET App

I went To Aspx microsoft website found latest Web validation Script in Temp File and replaced original with this , now working fine

Sunday, June 11, 2006 6:04 AM by shams

# re: Is .NET v3.0 (aka WinFX) going to be Synced with C# 3.0 (aka LINQ) ?

Paul, your question alone shows it DOESN'T make sense to name it _3.0_. I agree it does make sense to rename those silly acronyms, but it should have been 2.1

Sunday, June 11, 2006 6:10 AM by FransBouma

# re: VB will have the same From/Select LINQ syntax as C# Afterall

I'd like to see SQL Server adopt the new expression format.

ps: Is that a new c# keyword, "afterall?"   ...j/k man

Sunday, June 11, 2006 9:13 PM by Eric Newton

# re: Is .NET v3.0 (aka WinFX) going to be Synced with C# 3.0 (aka LINQ) ?

www.netfx3.com ....  there's no tab for LinQ (at least not yet).

Dan

Monday, June 12, 2006 1:19 PM by Dan Bartel

# re: .NET v2.0: Serial Port Communications Finally Arrives

Is there any way to connect to a serial port from a web page using client side scripting.
I'm using VS2003.


Tuesday, June 13, 2006 6:57 AM by Sriram

# re: .NET v2.0: Serial Port Communications Finally Arrives

I believe you'll have to create an ActiveX control (or equivalent .NET control).

Tuesday, June 13, 2006 7:57 AM by PaulWilson

# re: MasterPages in .NET v1.* -- Dynamic Masters

Hi Paul!

I've joined a project that is still using your master pages and I must say that you did a nice job being about two years before Msoft...

I'm just wondering about one thing... Is there a way to access the Master Template class from the front-end aspx-page?

I would like to set some properties on this master template class in order to keep the hiearchy of the layers... Is this posible?

eg:

Public Class MenuTest
 Inherits System.Web.UI.Page


   Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Dim masterPage As TreoMaster = MasterPageTreo

    ' Here I would like to set some properties to the masterpage class...
   End Sub
End Class

Tuesday, June 13, 2006 8:45 AM by Andreas Westling

# re: Check out my "Real" NHibernate Example App

HOW CAN WE USE NHIBERNATE WITH SQLSERVER 2005....I AM HAVING A DRIVER ERROR...SECONDLY SOME TIMES I GET AN ERROR ABOUT .HBM.XML NOT FOUND....HELP

Tuesday, June 13, 2006 11:25 AM by MOBI

# re: Check out my "Real" NHibernate Example App

You shouldn't need to do anything differently for Sql Server 2005, other than change your connection string if that's necessary on your install.  As for hbm.xml errors, I would think that you would get more help on the NHibernate forums, from regular NHibernate users, instead of asking me.  I'm pleased to offer something to the NHibernate community, but keep in mind that I do have my own ORMapper that occupies my time.

Tuesday, June 13, 2006 1:52 PM by PaulWilson

# re: .NET v2.0: Serial Port Communications Finally Arrives

Teh SerialPort class is wrong by design, its documentation is misleading.

A serialport class should transparently move 8bit bytes in/out of the PC. Without codepage interpretation, stream interface etc.

Have you MSFT guys ever worked in factory floor automation ?

A trace and debug utility displaying the status of RS-232 pins is missing.

Microsoft: pls just give us TRUE transparent ReadByte() and WriteByte() methods.

Wednesday, June 14, 2006 2:14 AM by Herbert Feichtinger

# re: Keith Patrick

".Net is a platform-independent framework, akin to Java the Framework"
What did you smoke for lunch?  .NET is platform-DEPENDENT... i.e.: Microsoft.  Mono and the others are completely independent attempts to mimic the framework so that it runs elsewhere.  Lay of the pipe will ya?

Wednesday, June 14, 2006 6:58 PM by Concerned CitiZEN

# re: AppSettings can Reference an External Config File

How is this achived in .NET20 using "applicationSettings / MySettings" instead of "appSettings"?

Monday, June 19, 2006 8:07 AM by Benjamin Tengelin

# re: Is .NET v3.0 (aka WinFX) going to be Synced with C# 3.0 (aka LINQ) ?

Indeed, it is the CLS that is platform neutral not the Framework with is an implementation just as Mono is.

Wednesday, June 21, 2006 11:41 AM by Lex

# .NET SP1 broke my blogs :-(

Thanks to Jez for pointing out that since I rebuilt my server over the New Year period, the submit buttons...

Saturday, June 24, 2006 6:27 AM by Ian Nelson

# New and Notable 104

You know what? Owning a pool really sucks-). Oh, it’s great to go in but not a lot of fun spending most...

Saturday, June 24, 2006 5:07 PM by Sam Gentile

# I agree but need some examples

I agree with this statement:

<i>Because of that fact, most all web apps, as well as those enterprise apps that have a distributed design, make the decision to have just a single db login that the application uses for all users and db interaction.  This approach is used almost universally</i>

The place I work at seems to be stuck in the past and doesn't like the idea of a trusted subsystem model. Do you or anyone have any documentation on who out in the world is following this model?

Wednesday, June 28, 2006 11:30 AM by Ren

# re: Check out my &quot;Real&quot; NHibernate Example App

Hi, Paul Thanks for your work, it's very interesting and much more completed than other. I would ask a question. In the example you use always session.CreateQuery so you use the IQuery interface. So you must make the query string (SQL string). In other example I have seen session.CreateCriteria. In the first you must know the DB structure and think in Relational mode (SELECT, JOIN, OUTER JOIN and so on). In the second you think in more OO. It's true? It is better use session.CreateCriteria? I'm novice in NHibernate but I think that I must masquerade the DBMS. A real application with NHibernate don't must have SQL-spagetti (also for security reason aka SQL Ingnition)

Thursday, June 29, 2006 12:38 PM by Antonio

# Running .NET WebForm Applications on Citrix

I was wondering if anyone had tried running a Webform application on Citrix? We have a case where once the citrix session starts and calls the web form, the focus should be on the text box on the form. However the focus seems to still be on citrix and the user has to click in the textbox (even though the cursor is in the form - when you type, nothing appears) to enter text. Any thought?

Thursday, June 29, 2006 5:57 PM by Angela

# re: Check out my "Real" NHibernate Example App

First, keep in mind that I'm not an NHibernate expert since I have my own ORMapper -- so I simply used what I did to make it work and don't claim its "best".  But having said that, I actually do like to think in Relational mode and don't view that as a problem -- but I agree its nice that an OO viewpoint is also supported.  I do the same thing with my ORMapper -- I tend to build Sql strings, since that's my viewpoint, but the ORMapper also supports OPath for OO thinking.  For my ORMapper though I do have a QueryHelper that helps me build those Sql strings, so I don't have to hard-code table and filed names, and I can also make sure my Sql strings are "clean" to avoid Sql injection.  I don't know if NHibernate has a similar thing to avoid such hard-coding and Sql injection, so while that's not a problem with my ORMapper, it may be more advisable with NHibernate to avoid it.

Thanks, Paul Wilson

Friday, June 30, 2006 5:42 AM by PaulWilson

# re: Running .NET WinForm Applications on Citrix

I've personally not worried about web apps on Citrix -- I'm also not real sure why you would bother to do so.

Friday, June 30, 2006 5:44 AM by PaulWilson

# re: Running .NET WinForm Applications on Citrix

We have clients that are running very old slow machines. They are going to connect to our new Citrix servers to kick off some desktop applications as well as our web applications. (Citrix talks to our web servers). With over 100 different client locations and 5-10 machines at each location, this was a less expensive way to upgrade the client's environment

Friday, June 30, 2006 10:18 AM by Angie

# Error regarding app.config file

Paul, I tried entering the following as per your article in my app.config file: I get the following error msg: {"The root element must match the name of the section referencing the file, 'appSettings' (C:\Program Files\CTGi\CDREngine\app.config line 2)"} System.Exception Can you please tell me what I'm doing wrong?

Thursday, July 13, 2006 2:17 PM by William Yeager

# re: AppSettings can Reference an External Config File

Note that the file you're referencing must have its root be appSettings, not configuration, and there can't be a beginning xml element either.  That's my guess anyhow.

Thanks, Paul Wilson

Thursday, July 13, 2006 2:43 PM by PaulWilson

# re: Forms and Windows Security in ASP.NET

Paul, Really nice article on MSDN. However due to my lack of exposure in httpContext / identity area I am not able to "plug in" returnUrl in redirectFromLogin method. what code exactly should be written in global.asax, what should go in webLogin.aspx.cs? how can I store a querystring["ReturnUrl"] even before page_load of winLogin.aspx? Could you give a brief idea?

Friday, July 14, 2006 1:48 PM by AG

# re: More Forms and Windows Security in ASP.NET

Have you not looked at the code in the download that accompanies the article? If the download isn't working for you then you'll need to contact me directly via email so that I can send you the code. Thanks, Paul Wilson

Friday, July 14, 2006 1:53 PM by PaulWilson

# re: Check out my &quot;Real&quot; NHibernate Example App

man, seems in connection string shall change "User=ORMExample" to "Uid=ORMExample"

Thursday, July 20, 2006 11:10 AM by athos

# re: The Truth about Stored Procs and O/R Mapping

Very good argument. We are using the O/RMapper at our client within clustred environment in java world and sometimes we feel this layer is somewhat slower than direct connection to database. Even with this approach we are using single db login approach and ACLs.

Saturday, July 22, 2006 9:39 AM by Ashesh Sheth

# re: FireFox Updates with no Warning in middle of Work

Gotta agree. I've experienced the same thing. It's just ridiculous software design. At the very least, download the update and notify the user as they close the browser that an update will be installed. Logic.

Thursday, July 27, 2006 3:07 AM by John Walker

# re: FireFox Updates with no Warning in middle of Work

I got a confirmation dialog after the download completed. I was asked if I wanted to install FF now or later. Perhaps you didn't notice the dialog popping up while you were typing. The "Install now" button was the default button on the dialog. Is it possible that you didn't look on the screen while typing? Perhaps you hit enter during your work in the textbox and confirmed the confirmation dialog by accident.

Thursday, July 27, 2006 3:19 AM by Jens Winter

# re: FireFox Updates with no Warning in middle of Work

I confirm Jens Winter's comment. and that "update" window was pretty big, too...

Thursday, July 27, 2006 9:10 AM by Carl Q.

# re: FireFox Updates with no Warning in middle of Work

I saw the confirmation dialog also... just after the update was finished it asks if you want to restart firefox now or later.

Thursday, July 27, 2006 9:12 AM by Rodrigo Diniz

# re: FireFox Updates with no Warning in middle of Work

I suppose its possible some type of dialog window opened up and went away inadventently before I could see it due to my typing, but I also wonder if we're talking about the same thing.  I too had a very big "update" window, and I too had a dialog when the "update" was finished asking me if I wanted to restart FireFox then, but the problem that I was referring to was that my browser windows were all closed before the big "update" window, and asking me if I wanted to "restart" FireFox after the "update" really isn't the same thing as asking me before the "update" if its OK to close everything.  So maybe there was a dialog before the update that I missed, but I'm still wondering if we're even talking about the same thing since confirmation dialogs are not usually "big" or "update" windows.  Anyhow, I've changed my setting to not install automatically in the future, so hopefully I won't have this issue again.

Thursday, July 27, 2006 9:33 AM by PaulWilson

# re: FireFox Updates with no Warning in middle of Work

Are you sure you weren't just typing along and hit enter? I got the same warning, but there wasn't anything automatic about the restart.

Thursday, July 27, 2006 10:49 AM by Jeff

# re: FireFox Updates with no Warning in middle of Work

I can also confirm Jens Winter's, there was a big "update" window. In fact I't popped up a few seconds ago (thats why I'm here now). All my tabs are still open and I can choose between "Restart Firefox Now" (selected) and "Later". Lets see, clicking "Later" (click) ... I get a text saying it will be installed next time I start Firefox, klicking the OK button and I can still type here :)

Thursday, July 27, 2006 10:52 AM by Morgan

# re: FireFox Updates with no Warning in middle of Work

Anything's possible as I was actively typing when it happened.  Its still obviously poorly designed if this is possible though.

Thursday, July 27, 2006 11:01 AM by PaulWilson

# re: FireFox Updates with no Warning in middle of Work

Paul, I highly recommend installing one of the session restoring extensions, like SessionSaver or TabMix. It's hard for me to imagine life without them. Not that Firefox should be spontaneously closing anything (it never has for me). But at least with the extension you may be able to recover your state.

Thursday, July 27, 2006 5:14 PM by kevind

# re: FireFox Updates with no Warning in middle of Work

This is exactly what happened to me yesterday however after installing the updates a dialog box appeared asking me if I want to restart FireFox...but it didn't appear on the start of installation...

Thursday, July 27, 2006 9:57 PM by Chris Ongsuco

# Documentation

Content on this page is severely out of date. Go to

Friday, July 28, 2006 2:00 PM by Confluence: NHibernate

# PageCount

This is a great SP and just what I was looking for. I know this is a dumb question...I don't understand how to get the recordset pagecount in ASP. I see the pagecount being returned when I execute the SP in a new query...

Tuesday, August 01, 2006 12:57 PM by Daniel Martinez

# re: Atlanta C# User Group features Greg and Wally on August 7th

Have I mentioned how nervous I am? (no joke)

Thursday, August 03, 2006 9:07 AM by Wallym

# re: Atlanta C# User Group features Greg and Wally on August 7th

Don't worry there's no reason to be nervous, afterall you just wrote the book on this and couldn't possibly mess anything up or leave anything out.  Right?  :)

Thursday, August 03, 2006 9:52 AM by PaulWilson

# re: Atlanta C# User Group features Greg and Wally on August 7th

There's really no reason for you to be nervous, Wally - it's a pretty friendly crowd. We even let Paul speak :)

Sunday, August 06, 2006 6:59 PM by Jerry Dennany

# re: JavaScript Oddity in FireFox

I'm experiencing the problem in FireFox 1.5 and Netscape 8.1 however the solution has no effect. These browsers seem to ignore changes to window.location.href! IE works fine with: window.location = "newPage.html" window.location.href = "newPage.html" location.replace("newPage.html") FireFox and Netscape appear broken! That's the forth problem I've had with them today. Only one problem today with IE.

Thursday, August 10, 2006 3:19 AM by Joel Fowler

# re: Is .NET v3.0 (aka WinFX) going to be Synced with C# 3.0 (aka LINQ) ?

It's a short-sighted misnomer. It won't be just Mono that's going to suffer; I mean what are they supposed to call .NET 3.5 on Compact Framework? Where's the "3" when WinFX isn't even going to be there? http://www.petitiononline.com/winfx/petition.html

Thursday, August 10, 2006 3:26 AM by rei

# re: More Forms and Windows Security in ASP.NET

Paul, I just download the code, compile it and push it on an IIS6 server in domain. I followed the differents configuration instructions. And put the redirect401.htm file in the custom erors of winlogin.aspx. From a domain computer, it works fine, i have my domain user. But outside of the domain, the windows authentication dialog shows up. If i hit cancel i am then redirected to the weblogin.aspx. So the question is how to get rid of the windows authentication form ? Any idea ?

Friday, August 25, 2006 10:30 AM by Jean Marie

# re: Is .NET v3.0 (aka WinFX) going to be Synced with C# 3.0 (aka LINQ) ?

.Net 3.0 will use c# 2.0. It will not use c# 3.0 I think they should've named .Net 3.0 something more like .Net 2.5

Friday, August 25, 2006 1:55 PM by Curelom

# re: More Forms and Windows Security in ASP.NET

Its a browser configuration option if you have that issue -- its not something you can get rid of just in code.  I believe the details involved changing the security zone for that url to be intranet instead of internet, but I can't recall completely.  I never experienced this in my tests, nor did the tester at MS, or we would have mentioned it, but since then its been apparent that lots of people do have this issue.  Making a client browser change may make this unworkable for most people, and that's fair enough, as this really was just a hack of last resort and not something I wanted to do.

Friday, August 25, 2006 2:01 PM by PaulWilson

# re: Linq is Really Cool -- But DLinq is a Big Mess

I have written a small project about LINQ and DLinq. This might an interesting read for some of you guys.

Sunday, August 27, 2006 8:58 AM by Kasper

# re: JavaScript Oddity in FireFox

I just found the same problem in FF 1.5. My application uses 'location=...' in bunch of different ways via Event Handlers, functions, etc. I only had a problem with one specific instance within function called by a popup window and my fix was to make the URL an absolute. Ex: location = location.protocol + "//" + location.hostname + "/myfolder/myfile.html" I know this won't solve every problems but at least it might solve some problem. Hate Smucks... Hate people who would rather insult then help.

Tuesday, August 29, 2006 6:16 PM by Jake

# re: .NET GC Myth #1 -- Set Object to Null

Setting an object to null in the middle of a method does have its merit - JIT tries to find out when your object is not in use as much as it can but it can't always do a perfectly job.

Saturday, September 02, 2006 3:29 AM by Maoni

# re: Nullable Types are NOT Integrated in .NET v2.0

I use a simple converter for O/R mapping: public static class SqlTypeConverter { public static int? ToNulllableInt32(object o) { SqlInt32 i = (SqlInt32)o; return i.IsNull ? null : (int?)i; } ...or public static int? ToNullable(SqlInt32 i) { return i.IsNull ? null : (int?)i; } ... and so on ... } But, of course, this still doesn't help with the ignorant controls!

Sunday, September 03, 2006 9:29 PM by bstabile

# Using MSBuild and ILMerge to Package User Controls For Reuse

One of the advantages to ASP.NET server controls is the ability to package them into an assembly and...

Thursday, September 07, 2006 9:11 PM by K. Scott Allen

# Ed&#8217;s Tech Blog &raquo; Blog Archive &raquo; One more cookbook for redirecting http to https in IIS

# re: Setting up SSL correctly with IIS and ASP.NET

Couldn't you simply use host headers in IIS to solve this problem by performing a 301 redirect on the 80 port to the 443 port? Not sure if this will work but you would set up 2 separate sites in iis. One site has only the 80 port configured. This site would do a permanent redirect to the other site which only has the 443 port configured. This way any traffic coming in from port 80 would get permanently redirected to the actual site on the 443 port. This avoids placing scripts in a site.

Wednesday, September 13, 2006 4:28 PM by Matt Savacool - Lead Internet

# re: Setting up SSL correctly with IIS and ASP.NET

Sounds like an easy and direct alternative Matt.

Wednesday, September 13, 2006 4:41 PM by PaulWilson

# re: The Truth about Stored Procs and O/R Mapping

This discussion is another one of those holy wars with staunch supporters on both sides of the fence fiercely defending their views until the bitter end. But the reality is that O/R mappers are just a tool like all of the other tools we use in order to get the job done. Each tool has inherent advantages and disadvantages and no single tool has been invented that gets the job done in every situation. As developers we are guilty of having a limited view of the architecture and design of systems. What is perceived as “best” to us would not always be agreed upon by the corporate DBA, Systems Architect, or CIO. How well does the tool (O/R Mapper) work in a corporate environment with DBA’s in total control of the database? How well does the tool work in LARGE applications that have several hundred programmers designing them? How well does it coordinate change or even versioning with that many programmers? How do you guarantee security with the tool? How do you prevent the evil programmer (or DBA) from simply inserting or modifying database data and paying himself a million dollar salary? Performance is secondary and worrying about the actual performance difference between dynamic SQL and stored procedures is a moot point if you can’t prove the application is secure. Removing all direct access to tables and limiting users to accessing stored procedures simplifies things to a point that your manager, DBA, or company owner can understand. Yes, the SetSalary() procedure is only callable by the Human Resource Manager. I know you can set table and column permissions on a granular level but you have just increased the complexity of the system tremendously and reduced buy-in from your security and RDBMS departments. Security Auditing with this tool becomes a non trivial task. Single login versus multiple login is just an authentication issue. There are many ways to authenticate the user. What percentage of corporate intranet applications use Windows authentication where every user is uniquely identified ( or certificates, or card readers, or biometric scanners)? Not everyone is building and using Internet apps with basic authentication on a single login. Does the RDBMS in the application have to run standalone, or does it have multiple applications accessing it? I suspect that the question of whether or not to have stored procedures is really “where do you want your business logic”. And that is a topic worthy of its own discussion. Note that I am not bashing the tool. In environments where the programmer is totally in control (and probably serving all the other roles I mentioned) they can use such a tool without all the political and corporate hoops that many of us have to jump through to have such a privilege.

Wednesday, September 13, 2006 4:49 PM by David Elyk

# re: Is .NET v3.0 (aka WinFX) going to be Synced with C# 3.0 (aka LINQ) ?

It's very stupid idea to name WinFx as .NETFW3.0. THen .NETFW3 = .NETFW2 + WinFx1 = mess. How about some updates? Downloads? Will be there different versions for download? Like only .NETFW? And what then will be a .NETFW? Or will be users pushed to download .NETFW + WinFx? It's very smart to download both especially when not using WinFX at all ;) And how about updates? What will happen when there will be an update to WPF? Do we have to then download a new .NETFW3.x version? Or will be there differente updates? It's very bad idea, going against basic versioning and project priciples. Then we could rename .NETFW and every product as MSSQL, Biztalk as Windows and it would be the simplest solution :) .NETFW IS NOT WINFX! It's something different!

Tuesday, September 19, 2006 3:41 AM by Jan

# re: JavaScript Oddity in FireFox

The above did not work for me in Firefox But this did: window.open('new.php'); parent.window.self.close() Techback, LLC www.techback.net

Tuesday, September 26, 2006 1:31 PM by Techback, LLC

# re: Vista will NOT support Developers

I agree on every level. As someone who uses VS.NET 2002 and 2003 *still* I find it difficult to believe this decision has been made because of technical reasons and more to do with marketing reasons - pushing people into a new VS.NET.

Wednesday, September 27, 2006 9:25 AM by Plip

# re: Vista will NOT support Developers

for some purposes its neccessary to use win 2003 server as development OS, so for me its not a problem

Wednesday, September 27, 2006 9:28 AM by preishuber

# Visual Studio support under Vista

Wednesday, September 27, 2006 9:31 AM by ToDotNet

# re: Vista will NOT support Developers

If Visual Studio 2003 is not supported, then why do the release notes for Service Pack 1 for Visual Studio 2003 (not 2005) say Windows Vista is a supported platform? Shouldn't it be just a matter of installing Visual Studio 2003 SP1?

Wednesday, September 27, 2006 10:02 AM by Sander

# re: Vista will NOT support Developers

'We Developers' number an abject minority compared to the target audience for vista - like all software or hardware upgrades people choose to move to it when they feel it offers them benefit, for home users this may be sooner than developers. I don't see where you have a point.

Wednesday, September 27, 2006 10:03 AM by Chad Smith

# re: Vista will NOT support Developers

The big technical challenge is with enabling scenarios like advanced debugging. Debuggers are incredibly invasive in a process, and so changes in how an OS handles memory layout can have big impacts on it. Vista did a lot of work in this release to tighten security and lock down process/memory usage - which is what is affecting both the VS debugger, as well as every other debugger out there. Since the VS debugger is particularly rich (multi-language, managed/native interop, COM + Jscript integration, etc) - it will need additional work to fully support all scenarios on Vista. That is also the reason we are releasing a special servicing release after VS 2005 SP1 specific to Vista - to make sure everything (and especially debugging and profiling) work in all scenarios. It is actually several man-months of work (we've had a team working on this for quite awhile). Note that the .NET 1.1 (and ASP.NET 1.1) is fully supported at runtime on Vista. VS 2003 will mostly work on Vista. What we are saying, though, is that there will be some scenarios where VS 2003 doesn't work (or work well) on Vista - hence the reason it isn't a supported scenario. Instead, we recommend using a VPC/VM image for VS 2003 development to ensure 100% compat. Hope this helps - even if the answer isn't entirely what we'd all like it to be, Scott

Wednesday, September 27, 2006 10:15 AM by ScottGu

# פיתוח בויסטה

ברגעים אלה, קראתי את מה שנכתב במספר בלוגים [לינקים שונים] לגבי התמיכה של כלי פיתוח ב Windows Vista. בסופו...

Wednesday, September 27, 2006 10:31 AM by חוויות של מתכנת (צעיר) ב .NET, ולא רק

# re: Vista will NOT support Developers

I just don't get why you people continue to slavishly follow microsoft and subject yourselves to this kind of stuff. Vista "will not support developers" because it doesn't have to. You guys can sit around and *** about it all you want but it doesn't matter because you have no alternative.

Wednesday, September 27, 2006 10:46 AM by Larry

# re: Vista will NOT support Developers

"We Developers' number an abject minority compared to the target audience for vista - like all software or hardware upgrades people choose to move to it when they feel it offers them benefit, for home users this may be sooner than developers. I don't see where you have a point." Chad, Explain to me how we can be expected to weed out platform dependencies if we can't use the platform we are developing for? How many man hours are going to be lost to the compile-deploy-test-fail-recompile cycle? If the freakin' IDE won't run on Vista, how can we be sure that the code it's spitting out will? Not to mention the headache that game developers will have. Got a working codebase under VS 2003? Better get started migrating it to 2005.

Wednesday, September 27, 2006 11:19 AM by Scott

# re: Vista will NOT support Developers

The IDE runs fine (at least 2005 does without any SP1). I think it's a matter of UAC prompts and whatnot which are a side-effect of hardened security. I've made a couple of small C# class libraries and Web Sites using Visual Studio 2005 and had no problems at all. Not being supported does not equal "wont-install". Considering the jumping-through-hoops many 3rd party libraries and tools give you i don't think developers will be having many problems with running 2005 on Vista, with or without SP1. Also, it was sort of given that a lot of things would break or bend with all the added security and changes MS has done to Vista.

Wednesday, September 27, 2006 12:37 PM by Stef&#225;n J&#246;kull

# re: Vista will NOT support Developers

I think you guys are overreacting a bit. Microsoft's not out to intentionally screw you guys. Seriously, that's pretty irrational.

Wednesday, September 27, 2006 1:24 PM by interscape

# re: Vista will NOT support Developers

Stephan:  Its mostly VS 2003 that's the problem.

Interscape:  No one said MS was trying to screw us -- its more a case of MS screwing themselves.

Wednesday, September 27, 2006 1:52 PM by PaulWilson

# re: Vista will NOT support Developers

I don't know if ScottGu will come back, but I'm afraid that I have a problem with this answer. I do mobile development. Virtual PC does not virtualise USB devices, and so ActiveSync running in a guest OS cannot synchronize with my devices. I need to be able to connect ActiveSync with a device and debug a .NET Compact Framework 1.0 application using Visual Studio .NET 2003. Yes, you can work on Compact Framework 1.0 applications in VS 2005, but it isn't possible to do this with no incompatible changes - editing a form causes its .resx files to be converted to a different format, which then won't load in 2003. VS 2003 is meant to be in mainstream support up until October 2008 according to the lifecycle policy. That means we expect you to make your best efforts to keep it compatible. That's what mainstream support should mean.

Wednesday, September 27, 2006 2:33 PM by Mike Dimmick

# re: Vista will NOT support Developers

>or we developers need to tell everyone to ignore Vista since its clearly not ready. I sympathies with much of what you said however I cannot agree at all with your closing statement. The vast majority of users simply don't care one bit about our development hassles with Visual Studio on Vista. Developers are an amazingly small percentage of the user base. So why should we feel we have the right to tell end users to ignore Vista because of OUR troubles? End users care about programs not developers. If they find they have a compelling need for Vista then they should use it. If we feel there is a compelling need to not support it with our software then we should do it.

Wednesday, September 27, 2006 2:43 PM by Jimmy Zimms

# No Visual Studio support in Windows Vista...

Windows Vista will be released later this year to partners and volume license customers and in the beginning of 2007 to the masses. A successful release of a software product such as Windows Vista req...

Wednesday, September 27, 2006 3:17 PM by Wictor Wilen

# Vista and Visual Studio 2003 incompatibility: the reasons

Vista and Visual Studio 2003 incompatibility: the reasons

Wednesday, September 27, 2006 4:50 PM by STEFANO DEMILIANI

# re: Vista will NOT support Developers

I think this is absolute madness... Surely Microsoft can't be this dumb?

Wednesday, September 27, 2006 5:08 PM by Alex James

# re: Vista will NOT support Developers

>...Virtual PC does not virtualise USB devices... VMWare does, up to a point; it has trouble with high-bandwidth devices like webcams, but it might be enough for remote debugging of devices.

Wednesday, September 27, 2006 6:18 PM by Dan Mitchell

# VS2005 SP1 on Vista, it's not that bad

The announcement of the beta of SP1 for Vista on somasegar's blog here seems to have caused some consternation since they're saying they need a new service pack for Vista and VS2003 won't be supported.The truth is a bit more mixed than that as Scott Guth

Wednesday, September 27, 2006 6:51 PM by PeterIs Ramblings

# re: Vista will NOT support Developers

This is totally inaccurate. First of all, VS2005 already runs on Vista, secondly, Somasegar said, (at http://blogs.msdn.com/somasegar/archive/2006/09/26/772250.aspx), " Visual Studio 2005 SP1 will run on Vista but will likely have a few compatibility issues. " Stop spreading FUD.

Wednesday, September 27, 2006 11:16 PM by Richard Hein

# re: Vista will NOT support Developers

If VS 2005 does not run in the operating system. Its a waste for me. Since I am working on the studio Most of the time

Thursday, September 28, 2006 1:29 AM by Vikram

# re: Vista will NOT support Developers

Richard: You need to learn how to read, since the main issue here by far is VS 2003, not VS 2005.

Thursday, September 28, 2006 4:17 AM by PaulWilson

# VS2003 and Vista - Is the sky really falling?

As part ofa recent Visual Studio 2005 SP1 announcement,the Corp VP of Microsoft's Developer Divisionstated

Thursday, September 28, 2006 5:31 AM by JonGalloway.ToString()

# re: Vista will NOT support Developers

PaulWilson: So, that's why the title says, "Vista will NOT support Developers", eh? Come on.

Thursday, September 28, 2006 6:29 AM by Richard

# re: Vista will NOT support Developers

Richard: if it doesn't affect your work, good for you. It does affect our work and a lot of other's work. VS.NET 2005 + sp1 also has problems on vista, but perhaps not that big, although I do expect to have UAC pop up when I debug. I want an OS which supports the software that I need. If the OS is incapable of running the software I need, the OS is useless and meaningless, because the SOLE purpose of the OS is running applications and providing a layer for my software and me to work with the hardware. If it fails to do that, the OS can take a hike. You also might not realize this, but Developers are very important. If developers lag behind on accepting an OS, less software specifically written for that OS is released, delaying the OS' large acceptance.

Thursday, September 28, 2006 7:03 AM by FransBouma

# re: Vista will NOT support Developers

Dan: unfortunately VMWare Workstation is not free. Also, I don't know if you've tried to actually work in a VM. My experience is that it's painful - it's hard to get data in and out of the VM. Copy and paste doesn't 'just work'. You have to share specific folders you want to use in the VM explicitly, or use network protocols to access data stored on the same machine (also have to share the folders). The rational choice for us is to stick with Windows XP and remote debug into a Vista VM, and put up with not having Glass. Scott's comment suggests, though, that even remote debugging with VS2003 may not work very well.

Thursday, September 28, 2006 10:06 AM by Mike Dimmick

# re: Vista will NOT support Developers

Frans: The point of my complaint is that there are all these bloggers posting titles like "No Visual Studio support in Vista" and "Vista will NOT support developers" etc..., they don't say, "VS2002-2003 won't run on Vista" or "Vista won't have full VS compatibility at release!" or much more accurate, and less-eye-grabbing attention. So, I have to go into work and explain to my bosses that the headlines they read are wrong, and they shouldn't panic. That's my issue.

Friday, September 29, 2006 9:07 AM by Richard Hein

# re: Vista will NOT support Developers

Richard: Yes, the titles are intentionally eye-grabbing, but the details are 100% correct.  Why do the titles need to be eye-grabbing?  I can think of two reasons right away.

One is because too many other Microsoft followers, like yourself, only like to report the positive spin.  You may want to say VS 2005 SP1 is in Beta and Vista is gonna be great, but that's a very serious half-truth, unlike the full truth that is in the details I've posted.  So unfortunately it takes some of us posting eye-grabbing titles with the full truth to get heard over the many misleading posts that don't report the full truth and only say MS is great.

The other reason for eye-grabbing titles is because you have to get attention focused on the negative aspects if we are to get Microsoft to change their mind.  They know they are not doing what is expected and hoped for, and yes they do have reasons for that which I can and do understand, but they hope to spin it in such a way that we won't care.  And if they don't get the proper feedback in time then we will be stuck with these poor decisions for some time.

This is very much just like the debacle with the change in the web project system in 2005.  Microsoft wanted very much to make things easier for non-enterprise developers that were having a hard time, and that was a good thing to want to do on their part.  But they ignored the enterprise developers in the process and only after the fact worried about the former style of web projects.  Why were we ignored?  Because there weren't enough that spoke up about the issues, and therefore few realized the impact until it was too late.  I personally saw a lot of experts say nothing about the changes because they bought into the positive spin.

Like it or not, you get change by speaking up and getting attention so that even more speak up -- that is the way the system works.  I like Microsoft's work for the most part, and I like the individuals on the ASP.NET team, most of which I have personally met several times in my trips to Microsoft.  But I would be doing a grave dis-service to myself and other enterprise developers that need proper support if I either remain silent or join your happy chorus.  No, I want Microsoft to reconsider their choice -- yes it will take work, and may delay things, or at least force a later SP to address the issue, but it is necessary if they expect Vista to be accepted in enterprises.

Friday, September 29, 2006 9:58 AM by PaulWilson

# re: Vista will NOT support Developers

Hey man, go easy on em, and besides its just too easy to fire up a VPC with the old bits... The notion of extreme backward compatibility in Microsoft's Operating Systems has produced all of these security nightmares... having to support flawed interfaces for 10 years just doesn't make sense in the era of virtualization and emulation.

Friday, September 29, 2006 10:37 AM by Eric Newton

# re: Tim Doesn't Like Live.com -- And I'm Not Sure About Atlas

(dead conversation, i know) i got the same feeling too, though i still can't articulate it well enough. what do you think of anthem.net? so far that's the implementation that's matched my intuition best...

Friday, September 29, 2006 5:06 PM by evilmousse

# New and Notable 104

You know what? Owning a pool really sucks-). Oh, it&rsquo;s great to go in but not a lot of fun spending

Sunday, October 01, 2006 2:34 AM by Sam Gentile

# re: MVP News and the Atlanta Community

Paul, I think your attitude is commendible :-) It's a shame you don't have the time to work in the community any more as you have in the past come up with some of the most impressive ASP.NET samples out there. Cheers, Phil.

Sunday, October 01, 2006 4:45 PM by Plip

# re: MVP News and the Atlanta Community

Paul - MVP is certainly a nice title, and a great way for Microsoft to recognize community contributors. I've enjoyed watching you obtain MVP status, and I believe that it was an award that was earned. It's also nice to see a 'fresh' perspective rotate through the list of MVPs, so it isn't a bad thing when someone isn't renewed. In the Atlanta Community, we all know that Paul Wilson is a 'go-to' guy, and we look forward to hearing you more in our C# user group meetings.

Sunday, October 01, 2006 9:30 PM by Jerry Dennany

# re: MVP News and the Atlanta Community

Paul. Thanks for your years of commitment. I know you didn't do it for the recognition, which is one of the great things about the MVP program (when done right). MVPs are rewarded for the selfless work they do rather than as a means for career advancement. This was truly the case for you. As a newly awarded member, I hope to carry your legacy on to the future (Even if I didn't get it in LINQ... yet ;-)

Sunday, October 01, 2006 11:22 PM by Jim Wooley

# re: Vista will NOT support Developers

I'm using VS2005 on Vista RC1 (5600) pretty extensively... class libraries, Windows Forms, WPF apps and have not run into any problems that I am aware of, outside of an occasional failure to repaint the IDE. Am I missing something?

Monday, October 02, 2006 1:15 PM by Jason Mueller

# re: Vista will NOT support Developers

Another key question is whether new machines with Vista include an implicit license to Windows XP in order to run it in a VPC? Otherwise we have to purchase a license to XP in order to apply this workaround, no? http://haacked.com/archive/2006/10/02/Does_Vista_Come_With_An_Implicit_License_To_WinXP.aspx

Monday, October 02, 2006 7:54 PM by Haacked

# re: Vista will NOT support Developers

There does still seem to be some confusion regarding the basic facts here. Visual Studio 2005 will definitely be supported on Vista. The C# team is testing it extensively, and a service pack is already in beta. I've installed it on Vista, and tested it, and it runs quite smoothly. There are still issues to resolve, but they are relatively minor. - Charlie

Monday, October 02, 2006 11:51 PM by Charlie Calvert

# Virtually Left Behind

You know, there has been a lot of controversy lately (from developers I respect who should know better)

Wednesday, October 04, 2006 4:03 AM by Robert McLaws: Windows Vista Edition

# re: MVP News and the Atlanta Community

Paul - you'll always be an MVP to us!

Wednesday, October 04, 2006 8:49 AM by Matt Ranlett

# re: Announcement: I'm Joining Mimsware

Good luck and congrats, Paul! Let's hope they give you some time to work on your O/R mapper, too. :)

Thursday, October 05, 2006 12:18 AM by Brian DeMarzo

# re: Announcement: I'm Joining Mimsware

Congratulations, Paul!

Thursday, October 05, 2006 1:48 AM by Marc Brooks

# re: Announcement: I'm Joining Mimsware

Congrats, Paul!

Thursday, October 05, 2006 1:34 PM by Craig Shoemaker

# re: Announcement: I'm Joining Mimsware

Well done Paul - good luck. I hope one of the first things you'll do is give their Microsoft.com (back in 2000) look-a-like website a massive makeover or at least tell them to do so!! See the comparison: http://web.archive.org/web/20000301053545/http://microsoft.com/ Pahhhleazzzzzze! ;)

Thursday, October 05, 2006 2:34 PM by Wim

# re: Announcement: I'm Joining Mimsware

Wim:  I honestly don't see either the problem with their current site, nor do I see many similarities to the historical one you pointed too.  Of course I'm not much of a UI guy myself, as I've been told many times my own sites suck, so admittedly you may be correct.  :)

Thursday, October 05, 2006 2:46 PM by PaulWilson

# re: Announcement: I'm Joining Mimsware

Cool, and congrats, Paul. Hope that this is a great gig for you...

Thursday, October 05, 2006 6:52 PM by Jerry Dennany

# re: Announcement: I'm Joining Mimsware

Wim:  "Mimsware has been consumed on new projects and growth that bring revenue and haven’t had time to re-brand/update the existing site look-n-feel.  It hasn’t become a need or priority based on our load.  It is on the radar, but we just haven’t gotten to it."

Friday, October 06, 2006 4:45 AM by PaulWilson

# re: Vista will NOT support Developers

Hmm. I've been using VC 2005 on Vista for a good while now and I haven't noticed any problems. Luckily, I saw this blog. If you hadn't told me it didn't work, I never would have known!

Sunday, October 08, 2006 3:58 AM by Doug

# re: Vista will NOT support Developers

I have been working solidly all weekend on VS2005 (SP1 Beta)/Vista RC2. It runs *so* much quicker than XP I have returned to work where I have a higher spec PC and it feels 'broken' just because it is running XP! Some of the new features in Vista are compelling *especially* for developers. Try it - you'll see.

Monday, October 09, 2006 3:56 AM by stu2020

# re: Announcement: I'm Joining Mimsware

Sounds better than wading thru 2 feet of water in the rainforest. Good luck Bryant

Tuesday, October 10, 2006 2:47 PM by Bryant Carlin

# Some Words About MVP Programs

Recently there were some news about Microsoft MVP program. Some known names such as James Cansdale ,

Thursday, October 12, 2006 4:25 PM by Keyvan Nayyeri

# Some Words About MVP Programs

Recently there were some news about Microsoft MVP program. Some known names such as James Cansdale ,

Thursday, October 12, 2006 4:27 PM by Keyvan Nayyeri

# What's an MVP? What does 'MVP' really mean?

A couple of days ago, the community learned that Jamie Cansdale, creator of Testdriven.NET wasn't re-nominated

Friday, October 13, 2006 5:54 AM by Community Blogs

# Tip/Trick: Source/Documentation for Simple ASP.NET 2.0 SQL Providers Published

One of the most popular features in ASP.NET 2.0 was the introduction of the "provider model" for the

Saturday, October 14, 2006 12:51 AM by Community Blogs

# re: Setting up SSL correctly with IIS and ASP.NET

After walking through several options I checked into Matt Savacool's alternative. Now I am very far from a IIS guy, but it seems to work for me. I created a second site that intercepts all unassigned port 80 calls and accepts the url https://domain.com as the redirect. The only problem I had was that it seemed that IIS required me to have a non-SSL port for primary site - so I just picked a random port and went with that. Everytime I tried to remove it it would gray out the okay.

Wednesday, October 18, 2006 3:24 PM by Chip Dunning

# Fox Valley .Net Users Group at Jeremy Coenen

PingBack from http://JeremyCoenen.com/blog/index.php/archive/fox-valley-net-users-group/

Monday, October 23, 2006 10:05 AM by Fox Valley .Net Users Group at Jeremy Coenen

# Even Non-MVPs get Congratulatory Letters from Microsoft

As noted before I was NOT renewed as an MVP this year, so I was surprised to get a letter today that

Monday, October 23, 2006 3:46 PM by Paul Wilson's .NET Blog

# re: Tim Doesn't Like Live.com -- And I'm Not Sure About Atlas

To some extent, I think that the issue revolves around a couple of different points: (1) How comfortable are you with HTML and Javascript? (2) Do you trust Microsoft to do the right thing for cross-browser use and to not write bloated code? Admittedly, Visual studio 2 is a LOT better than 1.1 My answers to this are (1) Very and (2) NOT! In general, I feel the same way about Visual Studio and the Web controls. Do I NEED someone or something else to write HTML and Javascript for me? The answer is, again, NO. But I date back to before Netscape 1, write Javascript and HTML in my sleep and do not trust Microsoft not to try to trap developers into doing things in a way that precludes using other browsers or tools. Don't get me wrong, I like and use Visual Studio 2 and data grids and lists can be really time saving. However, once you try to do something unusual with these timesavers, you may find that it is (a) difficult and (b) result in a really slow process. I have heard that Atlas integrates really well into Visual Studio and makes Ajax development very easy. If you love web controls, don't like to write Javascript, or even HTML, then Atlas is likely for you. If you like more control, then maybe one of the other libraries is better. Personally, I have been using AjaxPro.NET and do not see an overriding reason to change. These are 'comfort zone' decisions, though, so if you love Atlas, do not be surprised that others may not.

Monday, October 23, 2006 7:13 PM by Mona Everett

# re: Announcement: I'm Joining Mimsware

Paul, as your current client/employer, thanks so much for busting it hard and working very diligently after you gave notice. Many times people check out work ethic wise after they've given notice. You are definitely an exception to that and it is very appreciated. - Kevin

Monday, October 23, 2006 8:17 PM by Kevin

# Paul Wilson is an MVP in my book

It is funny how much Matt and I think a like. I recently read, in many places across the web, that...

Wednesday, October 25, 2006 12:34 AM by Atlanta .NET Regular Guys

# re: ActiveReports, Crystal, or Other for ASP.NET

Hi, I tried out LogiXML - I couldn't get a single report to work due to errors. Got a one liner help from their support, which was useless! Crystal Reports - their documentation is non-existent. Their Business model revolves around selling licenses and then getting things working through people trained by them alone! Don't fall into that trap. Active Reports - I've just been experimenting with. Again the bundle looks best of all the three. But then you have got to be careful of the pit falls - the product seems to be maturing .. and documentation is quite buggy and difficult to piece together. But of the three - I would prefer playing with Active Reports!!

Thursday, October 26, 2006 3:04 AM by Anantharaman

# re: Even Non-MVPs get Congratulatory Letters from Microsoft

Paul, Just to note, even Mr. ASPNET himself (ScottGu) in his recent blog also considers you as valuable as ever in ASPNET community. Thanks for the great works. http://weblogs.asp.net/scottgu/archive/2006/10/13/Tip_2F00_Trick_3A00_-Source_2F00_Documentation-for-Simple-ASP.NET-2.0-SQL-Providers-Published.aspx#662835

Thursday, October 26, 2006 3:25 PM by Samboy Lims

# re: ActiveReports, Crystal, or Other for ASP.NET

I'm not getting Crystal as a productive report tool. I have other users creating excel reports that are developed in short period of time and out perform any Crystal report I've seen. My issue is having to tightly couple report parameters in the report. It would be nice to create a template report and have different version based on different user parameters. The lack of native support of DB2 database is a huge issue in my office.

Tuesday, October 31, 2006 10:30 AM by TommyBoy

# re: JavaScript Oddity in FireFox

This didn't seem to work. I dug further and found this: http://www.codingforums.com/showthread.php?t=56428

Tuesday, October 31, 2006 6:29 PM by Shaun

# re: Vista will NOT support Developers

Vista MUST support VS2003.

Thursday, November 02, 2006 8:36 AM by Marko Macek

# re: Vista will NOT support Developers

>Dan: unfortunately VMWare Workstation is not free.

But it's worth every cent (unlike Vista, it seems).

Thursday, November 02, 2006 8:44 AM by Marko Macek

# Microsoft .NET 1.1 SP1, .NET 1.0 SP3, XP SP2 and potential problems.

A few people have already mentioned .NET 1.1 SP1 (in addition to .NET 1.0 SP3) being available as of

Friday, November 03, 2006 10:48 PM by AddressOf.com

# re: MySpace: My &quot;Space&quot; and My Thoughts

MySpace = Geocities 2.0.

Saturday, November 04, 2006 1:58 PM by Joe Chung

# re: MySpace: My &quot;Space&quot; and My Thoughts

Ironically enough they "MySpace.com" are looking for a Snr. Developer right now. I got an email from one of their recruiters a week ago, they are in Beverly Hills. Too bad that is a two hour commute or I would persue it...

Saturday, November 04, 2006 4:03 PM by Ryan Anderson

# re: MySpace: My &quot;Space&quot; and My Thoughts

Yeah, it sucks that they are the "de facto" due to sheer number of users. Sites like Orkut (or even Friendster) are so much easier on the eyes.

Saturday, November 04, 2006 7:35 PM by jayson knight

# re: MySpace: My &quot;Space&quot; and My Thoughts

This is true. In order to really customize a myspace You have to hide things and then use divs to overlay all the original myspace content. It's actually really easy-once you go to the many many sites that give tutorials on how to do this. One is http://joyboner.com/ but there are a lot more.skem9,bbz.com myspaceprodesigns.com, jchysteria.com and loads more. If you look at my myspace you'll see that it doesn't look anything like a regular myspace. And it was all done with css. Maybe myspace should've done it differently before they launched.There are a few new things you can do but yeah for the most part it takes a long time to go to all those tutorials and learn how to use your own css to make a better looking page.

Sunday, November 05, 2006 9:27 AM by mccormicky

# re: ActiveReports, Crystal, or Other for ASP.NET

Wish I knew the answer. I have a product that includes Crystal for .NET, but it is hobbled by CR deployment restrictions. Also developing CR reports is all about knowing workarounds, very non-intuitive. ActiveReports apparently has xcopy deployment (which would be ideal for a product designed to be deployed outside of corporate intranets), uses pure C# coding (again ideal), and seems to get better subjective ratings too from users. Going to give it a try I think.

Sunday, November 05, 2006 11:24 AM by Paul Taylor

# re: Check out my &quot;Real&quot; NHibernate Example App

I have been searching for an example of NHibernate and was glad to find this. I'm kind of a newbie, so sorry but how do you get the database data? Thanks.

Wednesday, November 08, 2006 12:46 AM by GO

# Paul Wilson presents at the Atlanta Cutting Edge.Net

Paul Wilson, creator of the popular Wilson OR-Mapper, presented on the Provider Model and custom providers....

Thursday, November 09, 2006 9:47 AM by Atlanta .NET Regular Guys

# Paul Wilson presents at the Atlanta Cutting Edge.Net

Paul Wilson, creator of the popular Wilson OR-Mapper, presented on the Provider Model and custom providers....

Thursday, November 09, 2006 9:47 AM by Atlanta .NET Regular Guys

# re: FireFox Updates with no Warning in middle of Work

I just had both Firefox and Thunderbird (Firefox on three different PCs no less) automatically install the 1.5.8 update DESPITE my having turned automatic updates off. And now of course Tbird refuses to update properly so I can't access my mail. This is actually the second time something like this has happened; and honestly, if it happens again I don't care how great Tbird and Firefox are ... I'm dumping them for something that is better designed!

Thursday, November 09, 2006 9:43 PM by Mr. Shiney

# re: ActiveReports, Crystal, or Other for ASP.NET

I use Crystal since vb3 and found at greatly powerfull and without bugs. The only concern now is that they are competing against MS and MS obviously is gonna kill them. Will they outlive version 11?

I am a novice to Active Reports and could not creat cross-tab. Is it their limitation, or my stupidity?

Wednesday, November 15, 2006 4:20 PM by Alexander Werner

# re: More Forms and Windows Security in ASP.NET

Hello,

Thanks for your article and code. However, I have been unable to get your technique of storing user tokens in cookies and then recreating windowsidentities from them on later requests to work. Is this technique platform specific? (IIS X, WindowsXX) I'm beginning to think it's not possible to store the token alone in order to recreate the WindowsIdentity. The symptoms are rather interesting. I pull the token out on the loading of winlogin.aspx, and store the token in the forms auth cookie. I also go ahead and store the token in a Session variable and also create the WindowsPrincipal object from the token and store it in Session scope. Recasting the WindowsIdentity from the Session scope works perfectly. However, recreating the WindowsIdentity from the token (whether its in Session or FormsAuth cookie) is problematic. The first request seems to always return the WindowsIdentity related to the IUSR_XXX account. Then on subsequent requests (perhaps reauths) it will return the ASPNET account. Then, it will invariably return a "Invalid token for impersonation - it cannot be duplicated. " error when trying to create the WindowsIdentity from the stored token. Debugging the tokens they appear to simply be four digit integers... any idea what their lifespan is? I can't imagine it could be relied on to remain static for the lifespan of the forms auth cookie... I also used your stock code along with your above code and experienced the same issues. Have you successfully used this technique in production? Thanks.

Tuesday, November 21, 2006 2:25 PM by Ryan

# re: More Forms and Windows Security in ASP.NET

Hi Ryan:

The technique presented in the article does NOT recreate Windows identities, so I believe there is a misunderstanding of intent.  Instead, the goal of the article is to show how you can grab the Windows name of the user, if it exists and the browser is setup properly, while still presenting the typical login form otherwise.  In all cases though, the result is ASP.NET Forms security since in the end the ASP.NET infrastructure forces you into one and only one model.  If you actually need Windows identities then you will not be able to combine it with ASP.NET Forms in the same "app" -- you can however create two different "apps" with the same code base with one configured as ASP.NET Forms and one with Windows identities.

Thanks, Paul Wilson

Tuesday, November 21, 2006 2:40 PM by PaulWilson

# re: More Forms and Windows Security in ASP.NET

Hi Paul. I understand your intent in your original article. And it works well which I applaud you for. However, your followup code in this blog post certainly does try to recreate Windows identities for users that previously authenticated via Windows authentication does it not? It is with this followup work that I am having difficulty implementing. You basically store the user's token in a cookie and then use that token to recreate a WindowsPrincipal object in order to populate the Context.Current.User object on subsequent requests. Wasn't the intention there to recreate that user's WindowsIdentity for role checks and try to get the best of both worlds of authentication? I understand it was just a quick example which was probably not thoroughly tested and not included in your original article, which is why I was wondering if you ever used this followup technique in a production environment or ran into the issues I 'm encountering. I apologize if I still misunderstand your intention here. Thanks again.

Tuesday, November 21, 2006 2:59 PM by Ryan

# re: More Forms and Windows Security in ASP.NET

Hi Ryan:

Ah, my apologies as I totally forgot this post was not about my article in any real sense.  So to answer your question, I certainly did not ever use this sample code beyond what was most likely a minimal test, so there may very well be issues that I did not ever notice.

Also, as I've said many times in emails, and I'm pretty sure a couple of places publicly over time too, I was never really happy with any of this.  I was forced to find a combined solution by a manager that refused to listen to  my protests.  Those reasons included that these types of hacks are very brittle -- they require odd IIS settings and even specific browser settings.  The alternatives of just accepting either everyone login, or two separate "apps" with the same codebase that are configured differently, are more than adequate in my opinion.  So why did I write an article that I didn't really like?  Because in the process of doing what I was made to do, I discovered that many others were in similar situations, so I thought it would make a good article.  Anyhow, while I did quite a bit of work and testing to get the main concept in the article, I've never spent any time on this since then -- other than responding to emails which tend to either be "this works great" or "this doesn't work".  :)

Good luck, Paul Wilson

Tuesday, November 21, 2006 3:17 PM by PaulWilson

# Web Links 11.23.2006 &laquo; Rhonda Tipton&#8217;s WebLog

Wednesday, November 22, 2006 7:24 PM by Web Links 11.23.2006 « Rhonda Tipton’s WebLog

# re: Sorting and Paging Recordsets in SQL Server

I found that this did not work when performing a descending sort on the second page of a multipage recordset. However adding an additional parameter for sort order and only calling it on the outermost sql statement fixed the issue.

Wednesday, November 22, 2006 10:29 PM by Jacqueline

# re: Introducing DotNetAtlanta.com with Forums

I look at webhost4life.com, for one thing i hold back is it provide unlimited bandwidth. I been advise to be aware of those who supply unlimited bandwidth.

I found another cheaper web hosting providers http://www.webhostforasp.net. They starting at $4.50 with 2gb space and no setup fee. As compare to webhost4life, 1gb space and $19.95 setup fee. However, have anyone here heard or try with webhostforasp.net before? Sound new to me.

For m6.net, it only cost 4.00/months but same like webhost4life, it offer 250gb bandwidth which sound a bit too good to be true for me.

Any others good suggestion?

Friday, November 24, 2006 3:25 AM by Nicole Tan

# re: ASP.NET 2.0 CSS Control Adapters Released

Paul -- I've got a precompiled version of the adapters that you can drop into web projects easily. Check it out at http://demarzo.net/archive/2006/11/24/1055.aspx

Friday, November 24, 2006 10:49 AM by Brian

# re: Introducing DotNetAtlanta.com with Forums

I've heard people making such blanket statements before, but it just doesn't really make sense to rule something out without looking into it.  I know several people that run some pretty large sites on webhost4life, and they've never been charged extra or pushed off.  In reality, if you are really going to be pushing that much bandwidth (unlikely 99.9% of the time), then you'll run into problems that have nothing to do with bandwidth.  For instance, you'll probably need multiple dedicated servers just to keep up with the number of requests that will be causing that bandwidth.  In other words, incredibly large amounts of bandwidth is really a symptom and not a problem, and charging more for bandwidth isn't going to solve the real problem at all -- it will just line the pockets of a shared host.

So if you can accept that you shouldn't rule out a shared host that offers unlimited bandwidth without checking other things, then what does matter?  Certainly we all want low costs for non-critical sites, which is what shared hosting is about, but is there really a big difference between $5 and $10 a month when there are other things to consider.  For me the two biggest things, once you get to that price level, are support and features.

Support for me includes uptime and the tools to do things yourself, as well as their responsiveness when its necessary -- and I've personally found webhost4life more reliable than other far more expensive hosts.  I don't want to imply they're perfect, as they are not, but neither is no one else, and you can't expect that unless you're paying hundreds or more every month.  My point is that I recommend webhost4life because all of my sites run on them, and do so very well or I wouldn't recommend them -- you can see them for yourself.

As for features, I want ASP.NET, multiple domains and sub-domains, lots of space, MS Sql Server, and more.  I also expect very good email including catch-alls, multiple accounts, aliases, forwards, spam filtering, and more.  I'm sure there's more I've left off, but you get the idea -- I don't need everything, but I do need a heck of a lot, and webhost4life has more than I need.  By the way, I used to host with M6.net back about 5 years ago and they were also good -- but they didn't get ASP.NET up quick enough for me so I left.  On the other hand, I was hosting with ASP.NET v1.1 and v2.0 on webhost4life very quickly when they were available publicly, if not the first day.

One last disclaimer, if you sign up with webhost4life using "wilson" as your referral than I do get a small commission.  I would not however keep my own sites somewhere that did not work very well for me and give me what I expect.  In other words, the small commissions are a nice extra, and you can get them too, but I would give them up and move somewhere else if webhost4life wasn't working great for me.  As for the host you're thinking about, they may be equally great, but do you know anyone that is using it that can attest to that?

Friday, November 24, 2006 1:30 PM by PaulWilson

# re: ASP.NET 2.0 CSS Control Adapters Released

I think Microsoft's statement is a lie when they say that "it is easy". If it was so easy why would it take them (with all their resources) so (and i mean SO) long to come up with the final version of the adapters?

If you look at the code of some of the existing controls inside BCL you will see that there is a lot of logic in methods that are normally replaced by the ones provided by adapters. Now since adapters are only adapters and no new classes, I suppose that we have the very same logic duplicated in them!

Other than that, It is Microsoft's problem and not ours and I'm happy about the CSS adapters :-)

Tuesday, November 28, 2006 6:59 AM by Michal Talaga

# re: When Do You Recommend DNN and When Do You NOT

In my company, we are currently developing dnn site. We developed new modules, custom database and other. By my opionion dnn is for low quality websites and nothing else. Why? Module parsing - model: too complex and really slow. Users: nothing special, module customisation - totaly wrong, too complex and totaly anti-design standards. Personally i examined code, lots of wierd behaivours, (i follow framwork model, and after i had added another portal everything started to behave really slow). Another minus is community which is crowd who are just selling their modules and don't offer any help. I sure i will never use this platform again.

ONLY situation in which i would recommend it is for really simle websites - u got modules for mail, document repository, u can add links and text. Everything else is pointless. Role security is very exensible, but complex and in many cases unnecessary. My suggestion - why to use this CMS when u can buy mucm better and simplier CMS (remember - for all aditional good looking stuff u need to buy commercial modules) and if u need real extensible cms then u should find some other (i was thinking this is good base, and now i am working this project 1 month plus, and i can tell u it would take much more less to progam it from scratch, in normal .net).

Wednesday, November 29, 2006 8:08 AM by Vjeran

# re: Setting up SSL correctly with IIS and ASP.NET

Couldn't I just use the option in IIS for Custom Errors that for error 403,4 to redirect to the https site???  For example just add in the redirect box something like https://www.mysite.com/ and that way it would automatically redirect to the correct ssl site?

Thanks.

Wednesday, November 29, 2006 7:37 PM by Carlos Guevara

# re: ASP.NET 2.0 Web Parts in Action by Darren Neimke

good note. I was looking  for a book like that

Thursday, November 30, 2006 12:33 AM by vikram

# re: Tip on Saving ViewState on Server

If i use this code, In submitting record i am getting the following error:

"The state information is invalid for this page and might be corrupted."

I have just copied and pasted the above code in my code behind page. Is that any changes i have to make. I am using ASP.NET 2.0.

Thursday, November 30, 2006 2:21 AM by Ahamed

# re: JavaScript Oddity in FireFox

Worked for me, now it works both in IE and FireFox, thanks a lot!

Friday, December 01, 2006 2:46 AM by Draiden

# re: Moving from Wise to VS.NET Deployment

I create packages for over 16,000 workstations and though I've used different products, WISE, makes it so much easier. If you need any specifc custome actions, you can either use the quirky WiseScript languange or VBscipt/Javascript, or call your own custom dll.s

Friday, December 01, 2006 9:23 AM by samw

# re: Nullable Types are NOT Integrated in .NET v2.0

Here's how I get around the <null> value in a datareader:

if (myDataReader.GetValue(5).ToString().Length > 0)

{

do stuff

}

ive only used to to test the selected value of a dropdown list when I was populating it from the database and getting the value that had been selected by the user a previous time.

worked like a champ.

the reason I used that if statement was because when I tried to write that value to the page, nothing happened.  So, since testing != null or != "" didnt work, I went with length

Friday, December 01, 2006 3:54 PM by Mortikhi

# re: Nullable Types are NOT Integrated in .NET v2.0

Check against the DBNull object, not null.

Sunday, December 03, 2006 5:21 PM by PaulWilson

# re: Introducing DotNetAtlanta.com with Forums

ok... sound good to me as well... i will rejudge webhost4life because of your testimonial. thanks anyway.

Monday, December 04, 2006 5:00 AM by Nicole Tan

# re: Note to Self: MySpace runs ASP.NET

So what if MYSpace runs on Asp.Net

Thursday, December 07, 2006 7:22 AM by vikram

# re: Note to Self: MySpace runs ASP.NET

One other nice-to-know: They're actually developing with Visual Studio Team System on top of Team Foundation Server. Not a big deal, but when you consider their all-up continuous integration solution, it definitely speaks to the power and capability of the VSTS/TFS combo.

Thursday, December 07, 2006 7:45 AM by Michael Flanakin

# re: Note to Self: MySpace runs ASP.NET

MySpace runs on BlueDragon.

BlueDragon is a ColdFusion Server for .NET.

What makes you say the *.cfm templates "are now mapped to ASP.NET"?

Thursday, December 07, 2006 8:34 AM by deary me

# re: Note to Self: MySpace runs ASP.NET

They certainly use do use BlueDragon also in some parts, but those are getting fewer.  Here's the non-NDA "proof" for those that don't believe it: http://weblogs.asp.net/scottgu/archive/2006/03/25/441074.aspx.  As for "so what", well there are a lot of poorly informed people that think IIS and ASP.NET and MS SQL due not scale, and this is another real-life example that they do.

Thursday, December 07, 2006 10:11 AM by PaulWilson

# re: Note to Self: MySpace runs ASP.NET

Dang...and I just switched to PHP/MySQL.  lol

Seriously, who cares....well, I do a little.

It is nice to know that IIS can scale to the ginormous bandwidth crapspace needs.

cbmeeks

http://www.codershangout.com

Thursday, December 07, 2006 10:33 AM by cbmeeks

# re: Note to Self: MySpace runs ASP.NET

MySpace runs like crap.  

Thursday, December 07, 2006 12:55 PM by Matt

# re: Note to Self: MySpace runs ASP.NET

oops, hit enter.  What I meant to say is - MySpace is often slow to respond and I get lots of "sorry, we couldn't process your requests."  One hopes it isn't b/c of ASP.NET and IIS.

I heard this news a long time ago that MySpace was switching to ASP.NET and thought "cool" b/c that is what I develop with but then I started noticing a gradual degredation in performance since the news and I couldn't help but have bad thoughts...

Thursday, December 07, 2006 12:58 PM by Matt

# re: Note to Self: MySpace runs ASP.NET

Certainly MySpace isn't perfect (I've already said in a previous post that I don't like their site), but follow the link on ScottGu's blog to get more background.  For instance, while they may be too slow at times for sure, I believe its safe to say based on ScottGu's blog (and from what I saw myself) that they are running far "better" on IIS and ASP.NET than their previous platform.  On the other hand, it could still be far better, but they are also still very limited in that they are kind of stuck with an existing site for the most part and therefore cannot start from scratch and take advantage of a lot of ASP.NET features.  So in summary, I'm not trying to say MySpace is a great example of a well-architected site, but I am saying that given what they are stuck with they are doing "better" with IIS and ASP.NET and make a solid case that they do scale.

Thursday, December 07, 2006 1:16 PM by PaulWilson

# re: Note to Self: MySpace runs ASP.NET

MySpace has also been growing like mad, so they are dealing with a platform change, and trying to scale out.

www.imatch.com just migrated from coldfusion to asp.net, and picked up some perf gains.  my feeling is that the perf gains were more to do with better cleaner code, than the platform.

Thursday, December 07, 2006 2:11 PM by todd carrico

# re: Note to Self: MySpace runs ASP.NET

Thursday, December 07, 2006 4:32 PM by David

# re: NUnit, Log4Net, and O/R Mappers

Here you can find a very good example on how to use log4net very fast:

http://www.dotnetspace.com/articles/general-articles/using-log4net---very-quick-start.html

Thursday, December 07, 2006 10:17 PM by DotNet

# re: Note to Self: MySpace runs ASP.NET

Paul, I was a VP in a company owned by the same parent as MySpace and I know a few people working over there. Trust me its not all what it looks like on the outside. At the same time I have to give them credit for continually keeping that crappy code base they started with from completely  breaking. Its an indirect credit to MS Tools I believe. They succeeded in spite of themselves.

Friday, December 08, 2006 12:01 AM by Thomas Wagner

# re: JavaScript Oddity in FireFox

Good explanation from http://www.codingforums.com/showthread.php?t=56428

add return false; in FF otherwise a submit is performed (which does not happens in IE)

Friday, December 08, 2006 9:25 AM by Pierre Delnatte

# re: VS 2005 Service Pack 1 Available -- Go Get It Now

The duplicate install is likely caused by the following: first you installed vs.net 2005 professional, and later on when you received the msdn team system edition like all the other dev mvp's, you installed/upgraded the install with teamsystem, and from then on, you get two times the install.

I have this as well, with hotfixes and this service pack also tried to do this. So I decided to postpone it a little and first re-install vs.net, now just teamsystem, not the professional edition first. :)

Friday, December 15, 2006 9:00 AM by FransBouma

# re: VS 2005 Service Pack 1 Available -- Go Get It Now

No SP1 for VStudio 2005 professional?

Friday, December 15, 2006 9:00 AM by Kevin Jensen

# re: VS 2005 Service Pack 1 Available -- Go Get It Now

Kevin:

Professional is included in that, but here's the link that says that and has other links for Express:

http://msdn.microsoft.com/vstudio/support/vs2005sp1

Frans:

Interesting theory, but no dice here since this is a machine I've built from the ground up after having team system, so it did not start with Pro (unlike my older machine).  Maybe its because I added Data Dude?

Friday, December 15, 2006 9:22 AM by PaulWilson

# re: VS 2005 Service Pack 1 Available -- Go Get It Now

Paul,

Thanks, You are correct.  I see they even added a footnote next to it stating that.

Kevin

Friday, December 15, 2006 9:33 AM by Kevin Jensen

# re: VS 2005 Service Pack 1 Available -- Go Get It Now

Paul: hmm, ok :)

Kevin: use the same servicepack. :)

Friday, December 15, 2006 11:29 AM by FransBouma

# re: Note to Self: MySpace runs ASP.NET

It's always interesting to hear what technologies high profile sites use. But, all the proof I need that ASP.NET can scale is that the Microsoft, MSDN and Dell websites use ASP.NET.

Saturday, December 16, 2006 12:07 PM by Chris Pietschmann

# re: JavaScript Oddity in FireFox

Thanks!  It fixed the exact same problem we were having.

Monday, December 18, 2006 12:43 PM by Clint

# re: Nullable Types are NOT Integrated in .NET v2.0

Although it's true that the lack of integration is annoying, the fact that I CAN now create a null-value base type is a tremendous relief.  I don't mind using obscure conversion syntax at the border of the data-retrieval-layer if I don't have to pollute the rest of my code with all those ugly SqlTypes.

Le roi est nul!  Vive le roi!

Monday, December 18, 2006 1:19 PM by Mike Bridge

# re: The Best O/R Mappers: NHibernate, LLBLGen Pro, and EntityBroker

Paul,

What is your opinion about EntitySpaces. Is their Dynamic SQL implementation good?

Tuesday, December 19, 2006 12:15 AM by Michael Freidgeim

# re: CSLA: My Thoughts and Opinions

I have used CSLA successfully on several projects.  Like anything else there was quite a learning curve and getting by in from other developers was also an issue. We relied heavily on mass code generation (CodeSmith) and unit testing. (VSTS)  Without a good unit test harness I think you will not be successful with any OR/relation mapping tools.

Tuesday, December 19, 2006 2:09 PM by Eric

# re: The Best O/R Mappers: NHibernate, LLBLGen Pro, and EntityBroker

Sorry, but I'm not familiar with an EntitySpaces product.  I searched and found what I guess you are referring to, and it appears to be by the same person behind MyGeneration.  But I'm not familiar with it, so I can't comment on it.

Tuesday, December 19, 2006 7:46 PM by PaulWilson

# re: VS 2005 Service Pack 1 Available -- Go Get It Now

People at our company have started installing SP1 and from what Ive heard its about a 2 hour experience from start to finish. Good times!

Tuesday, December 26, 2006 11:43 PM by Kevin Castle

# re: MySpace: My "Space" and My Thoughts

Would it really destroy the site if one day everybody's content was output with all the styling gone apart from some basic stuff like the background image?

Thursday, December 28, 2006 8:59 AM by Ian

# re: MySpace: My "Space" and My Thoughts

Hey Ian:

Yes, it probably would destroy quite a few "spaces" out there.  Why?  Have you created a "space" and tried to personalize it?  Have you then looked around at all the sites that offer "tools" to help you personalize it?  Have you looked at some of the "spaces" that are very different then the standard "space"?  If not, then it probably is hard to imagine the degree of personalization that is being done by many, but it goes far beyond just "style" at times.  My "space" is just styled better, and that's probably true for the majority, and so ours wouldn't "break", although they would look ugly and you don't want to tick off millions of users when there are alternatives.  But I've seen a fair number of "spaces" that have their content managed by their "style" tags, and even if its just a minority its probably still a pretty hefty number given their base size -- and these would be very much "broke".  I suppose the best answer would be to have two modes that the user themselves could choose, like a "classic" mode and a "personalize" mode.  But for that to work they would have to make sure that users that choose "personalize" have a significant number of good options, and that they no longer allow the open-ended style options they currently have, else they'll either find no one will care, or they'll be right back in the same bind if they aren't careful.  Maybe you also limit the time that "classic" mode is available to force users to move away from that, but they have to be prepared for at least some people to be very vocal about being forced if they go that route.

Thursday, December 28, 2006 9:17 AM by PaulWilson

# re: I've Been Tagged: Five Things You Didn't Know About Me

I was born in Mobile as well (1957) and played chess on the Shaw High team. I also graduated from the University of Alabama!

Friday, December 29, 2006 10:31 AM by Paul Ferrill

# re: I've Been Tagged: Five Things You Didn't Know About Me

Local boys, huh? I lived in Mobile, off and on, from age 16 to age 45, then seeking a better life, I moved to Fairhope. BTW, graduated from Vigor in '69.

Friday, December 29, 2006 12:11 PM by John

# re: VS 2005 Service Pack 1 Available -- Go Get It Now

20 minutes for me. I ran it from the command line with /quiet. I'm even on a mediocre PC (with notoriously bad performance with heavy paging).

I think the key is to run with /quiet.

Friday, December 29, 2006 12:55 PM by Adam

# re: MySpace: My "Space" and My Thoughts

Hi Paul,

Sure I appreciate that many spaces would be ruined if a new system was rolled out but what I mean by 'destroy the site' is would it tick off enough users that myspace would lose its leading position in online social networking?

They could say, 'Jan 1st 2008' we're going to switch. Who knows? Maybe users in general would think it was cool.

Another thought, perhaps the way Myspace is is a reason for it popularity? A lack of easy personalization means standardization between profiles which keeps people's minds on who it is that they're viewing instead of being distracted by eye candy.

Personalization is individual centric. But an online profile is supposed to be used by many others. So maybe moving columns around etc. is simply not appropriate here.

Ian.

Saturday, December 30, 2006 11:54 AM by Ian

# re: Announcement: I'm Joining Mimsware

Dave Mims has taken Wim's comment to heart and made updating Mimsware's website a priority -- so take a look now.

Saturday, January 06, 2007 12:00 PM by PaulWilson

# re: Announcement: I'm Joining Mimsware

Much nicer website now than before...

Saturday, January 06, 2007 3:20 PM by Jerry Dennany

# Sasha Sydoruk &raquo; Blog Archive &raquo; Scott Hanselman&#8217;s - &ldquo;Language Extensibility&rdquo; podcast

# re: Breaking News: Future Version of .NET Framework to Run on the Mac

Erm... you can have mono on the Mac now, which more functionality than the wpf/e framework. Or am I missing something?

Saturday, January 13, 2007 2:10 PM by FransBouma

# re: Breaking News: Future Version of .NET Framework to Run on the Mac

That's a good question.  And I think the answer is that it depends on what you're doing.  Mono is likely to support a larger subset than this new mini-CLR, but then again this new mini-CLR might be more up-to-date than Mono.  So if you're going to run something on the Mac you'll need to decide what the relevant subset is that you need, and how best to accomplish that.  Then there's the issue of size and ubiquity since Mono is very large, as is the full .NET, while the new mini-CLR is going to be very small.  And over time we'll probably find that the new mini-CLR will hopefully become very ubiquitous so that we won't have to worry about even a small download, while that's not likely to be the case with Mono.  Finally, the other aspect, like it or not, is something that you already know very well, and that is that the vast majority of MS devs only care about the official MS stack, and Mono ends up never even being considered.

Saturday, January 13, 2007 2:46 PM by PaulWilson

# re: Breaking News: Future Version of .NET Framework to Run on the Mac

wow, is this the news of the year for me....

Sunday, January 14, 2007 4:47 AM by Vikram

# re: Breaking News: Future Version of .NET Framework to Run on the Mac

Hi Paul,

Microsoft at the moment have several different branches of their CLI implementation, the .NET Framework as we know it today is branched into the SSCLI (Rotor) line. Rotor is different to the commerical CLI in that several parts are replaced, largely to remove commerical interests but also to allow for cross platform running. There Microsoft have added a Platform Application Layer (PAL), which is a unmanaged C++ layer that sits at the very base point between the CLR and the OS that allows the IL to be run across different chips and translates system calls (error calls etc) and thread allocation etc. The PAL allows Rotor to run on windows, the OSX and FreeBSD. OSX and FreeBSD are close targets as the OS are very similar (OSX being based on FreeBSD) so adapting the PAL for each is not as much as work as say Linux would be (and possible with work).

So the .NET framework can with an adaption like the PAL be run on other platforms. What I suspect Microsoft will do is either a) extend the PAL for the commerical line so that window dependent code can use it. b) keep the PAL light weight and lighten the framework to reduce the windows dependent code. Microsoft will also improve perf with the PAL for the commerical line.

Thats my take on it :)

Andy

Monday, January 15, 2007 4:55 AM by andrewstopford

# re: Breaking News: Future Version of .NET Framework to Run on the Mac

Seems like the more Apple is spitting in the face of microsoft, the more microsoft likes them.

After vista, windows and all other bashings, MS should just cease all Apple development. No Mac Office means OSX is as good as dead in any business environment.

Monday, January 15, 2007 10:25 AM by Alex G

# re: Breaking News: Future Version of .NET Framework to Run on the Mac

That's a pretty stupid assessment. OS X wouldn't go anywhere just because Microsoft would stop doing Office. The iWork suite, if expanded the way the rumors indicate, works just fine.

Monday, January 15, 2007 11:35 AM by Jeff

# re: Breaking News: Future Version of .NET Framework to Run on the Mac

It's great to see Microsoft moving forward on the initial .NET and IL vision of mulit-platform support.  It sounds like WPF/E will give Adobe Flash and even Apollo some good competition...

Monday, January 15, 2007 11:42 AM by Jeremy Suriel

# re: Breaking News: Future Version of .NET Framework to Run on the Mac

I think this is more about stemming the flow of Rich Web App development and taking on Flash, rather than any serious support for C# and .NET on OSX.

If MS really wanted the .NET CLR to be a cross platform solution they could do it by porting the lot (runtime, library, tools) to OSX. But they have no interest in doing so: they make their money and dominate the market through Windows. Why would they do anything to weaken that?

Monday, January 15, 2007 12:25 PM by Krishna Kotecha

# re: Breaking News: Future Version of .NET Framework to Run on the Mac

I'm with Krishna on this one. Don't expect to be able to write any cross-platform enterprise app with this WPF CLR.

But you most probably can code Tic-Tac-Toe in C# and XAML and run it on MacOS.

If they want to support the WPF/E plugin for various browsers, it makes sense to slightly extend that support for rich UI's to the desktops. Similar to downloading a Flash file and running it locally...

Monday, January 15, 2007 1:13 PM by Wim Hollebrandse

# re: Mimsware Website Updated due to Blog Comment

Definitely a great improvment!

Tuesday, January 16, 2007 5:08 AM by Chris Ongsuco

# re: Setting up SSL correctly with IIS and ASP.NET

Carlos you cant do that as it requires an absolute url. It can't start with http:// or https://.

It's not neccessary to do the redirect with code. I serve RedirectSSL.file which is an empty file. IIS is configured to redirect all traffic to the file to the https website. Substantially easier than redirecting with code :)

Wednesday, January 17, 2007 7:34 PM by Sam

# re: Breaking News: Future Version of .NET Framework to Run on the Mac

Wim, I think you're missing the point of this. WPF/E has the possibility to build richer front ends that HTML can't handle today or that are difficult to do or require fancy frameoworks built on a house of cards. Having a rich UI that can talk to the server to get data to the client doesn't require a huge amount of functionality in terms of framework...

It's in Microsoft's interest to be a player in this area or else loose out to Flash or other tools that are starting to crop up to take that place.

Whether Microsoft can make any inroads on anything but Windows is another story, but it all depends on how well they execute WPF/E and whatever CLR framework/language features they support. Let's just hope it's not crippled to the point of being unusable...

Sunday, January 21, 2007 7:12 AM by Rick Strahl

# re: LINQ to SQL "Real" Example App Available

It was a good presentation even with the projector issue. I look forward to going through your examples.

Monday, January 22, 2007 1:23 PM by John W.

# re: LINQ to SQL "Real" Example App Available

Great presentation, Paul.  Thanks for taking the time to do this, as it is efforts like this that make local Code Camps successful.

Monday, January 22, 2007 11:05 PM by jerdenn

# re: Hummingbird DM AEM: Automated Email Management

I worked for a Hummingbird ISV for 5 years and developed for many DM solutions in many different industries.  It certainly does take some time fealing your way through the dark places that don't have documentation to light them up, but once you are familiar with the room you can find anything. Now, I spend my time on Sharepoint ECM and related record retention and BPM solutions.   I think it is the best space to work in.  Good luck on the project and I will be interested to here more, maybe at one of the .NET UG meeetings.

Tuesday, January 23, 2007 10:41 PM by Aaron Cutlip

# re: Breaking News: Future Version of .NET Framework to Run on the Mac

If producing a superior OS means Apple is spitting in Microsoft's face than so be it.  I'm not sure why Microsoft would make a version of VS or any 'light' clr for OS X because this would be a conflict of interest for them because there would be a line of developers at every Apple store.  Right now Microsoft has the best of both worlds with the new Intel Macs.  You can run windows natively via Bootcamp (dual boot) or by using Parallels which allows you to run both at once - the windows os in a virtual machine.  With the new Core 2 Duo processors you can run VS inside of Parallels on an iMac faster than you could on a year old 'centrino' based machine running windows natively.  So for those of you wishing for an OS X version of VS - try X-Develop - MS will not lead this charge and given their track record I'm not sure we want them to.

Wednesday, January 24, 2007 8:47 PM by gdonovan

# re: IIS Applications, Virtual Directories, and ASP.NET

the very thing I was looking for!!!!

It helped me a lot... gr8 work.

Thursday, January 25, 2007 4:25 AM by AP

# How to automatically redirect http to https in IIS &laquo; My personal blogs

# re: Yet Another Post on Dynamic Sql vs. Stored Procs

I absolutely refuse to believe that SQL generated by OR mappers or whatever else would perform well by default.  Dynamic SQL seems as if it is doomed to poor performance, unless the people using the OR mapper or otherwise changing the dynamic SQL are severely limited in what they are allowed to do.  Otherwise, what your 'user' ends up doing could eventually lead to long-running queries.  

This scenario seems worse to me than hard coded SQL in code or in a stored procedure.  Your tuning efforts involve figuring out the exact things your user did that ended up generating long running sql, and then you have to ensure your "tune-up" won't impact any other series of actions the user may take.

So, perhaps dynamically generating SQL may be ok under severely limited circumstance.  Otherwise, bad idea.

Monday, January 29, 2007 6:28 PM by MLKnight

# List of JavaScript functions don't work in mozila

List of JavaScript functions don't work in mozila 2 But work in Ie 6

Tuesday, February 06, 2007 5:59 AM by Mukesh doot

# Justin's Blog - Binding ActiveRecord to a DataGrid in Read Only Mode

# re: AppSettings can Reference an External Config File

This is a good example, but honestly, it's really stupid not being able to use an external REAL xml .config file that has the 'xml' tag in it and all other sections and stuff. I have a windows service        

that has its own config file  and i want to use this file from an other Windows application that resides in the same folder, so it looks like this <appSettings file="MyWinService.exe.config"></appSettings> and  what i get is the error: "The root element must match the name of the section referencing the file...". In other words - it is almost useless.

Wednesday, February 14, 2007 3:51 PM by Alex Nilsen

# re: Linq is Really Cool -- But DLinq is a Big Mess

The only thing scarying me is the lack of updates to WilsonORMapper....   :)

Saturday, March 10, 2007 8:49 PM by Steve

# re: Linq is Really Cool -- But DLinq is a Big Mess

Yea, I've got some half done and never had the time and energy to finish them.  Lots of changes in my life to blame, all of which I'm making efforts to fix, or already have fixed in many cases.  Luckily DLinq, now called LINQ to SQL, is looking better and better with each drop.  :)

Sunday, March 11, 2007 5:11 PM by PaulWilson

# re: Linq is Really Cool -- But DLinq is a Big Mess

hehe,

glad to hear you say that - I was just installing it yesterday, did some Linq for the first time over a Dlinq model I created, and I was pretty impressed.

Granted Paul, I agree, it's probably not perfect, but it's making progress and it's definitely easy to get started with.

:)

I didn't mean to knock you by the way, you've done a great job on your tool and I felt it was definitely worth the money I paid to help support it!

Monday, March 12, 2007 8:53 PM by Steve

# re: Anyone heard of Login problems for some IE users?

I am having the same problem right now with some of my users.  I can use their credentials and login without any problem.  

I have asked them to try Firefox and one users reported that Firefox works fine.  

Did you even get to the bottom of this?

Thursday, March 15, 2007 10:39 AM by Nathan

# re: Anyone heard of Login problems for some IE users?

Hi Nathan:

No, I never could figure out the problem.  I also haven't heard any more complaints in some time, so it may have been resolved by a service pack, but I'm honestly not sure.

Thanks, Paul Wilson

Thursday, March 15, 2007 12:43 PM by PaulWilson

# re: Linq is Really Cool -- But DLinq is a Big Mess

Paul I just blogged about a comparison between Wilson ORM (WORM) and LINQ for SQL (LINQ)

http://mikelockyer.spaces.live.com/blog/cns!D935506AB1D72BB9!132.entry

Have been having a really postive time with your ORM and my students.

Thanks

Mike

Friday, March 16, 2007 4:46 PM by Mike

# re: LINQ to SQL "Real" Example App Available

I have put a short discussion about using your ORM and LINQ at

http://mikelockyer.spaces.live.com/blog/cns!D935506AB1D72BB9!132.entry

Thanks

Mike

Saturday, March 17, 2007 7:43 AM by Mike

# re: Linq is Really Cool -- But DLinq is a Big Mess

Hi Paul,

I'd be interested to learn your up-to-date opinion on LINQ to SQL. I also thought very little about DLinq when it first arrived on the radar back in 2005. However, i have to say that having experimented with the latest CPT I'm pretty impressed in general.

Cheers,

Chris.

Wednesday, March 28, 2007 2:59 PM by Chris Moseley

# re: Linq is Really Cool -- But DLinq is a Big Mess

Hi Chris:

I noted in a previous post, and in some comments on this thread, that LINQ to SQL is definitely looking much better to me.  I still haven't had time to play with the March 2007 CTP though, so I'm not in a position to comment more yet.

Thanks, Paul Wilson

Wednesday, March 28, 2007 5:20 PM by PaulWilson

# re: Pet-Sitter Recommendation: Wholistic Sitting

Bravo!  I wish all clients were as open about sharing their experiences with professional pet-sitting companies as you are!

Thanks for helping get the word out that there are professionals out there!

And Congrats to Tanya for making such a positive impression!

Best,

Peggie

Monday, April 09, 2007 5:54 PM by Peggie

# re: Recommendations: Exact Battery and KidzArt NW GA

I thought it had been a while since you posted...

Monday, April 09, 2007 8:51 PM by Tim Haines

# re: Function to Load Enum-Typed Properties from Database

To further constrain the input for T, add a type constraint of where T: struct. You can't use : enum, so struct is the next best thing.

Another handy utility enum function I use quite often:

       public static T ParseEnum<T>(string value) where T: struct

       {

           return (T)Enum.Parse(typeof(T), value, true);

       }

Tuesday, April 10, 2007 10:51 AM by jayson knight

# &raquo; Garbage Collection Information &#8212; Must Read for .NET Devs

# re: Function to Load Enum-Typed Properties from Database

I've been looking at the implementation of Enum.ToObject(Type, int) (using Lut'z Reflector, of course), but can't seem to think of a reason to use it. Why not cast the int directly to it's enum?

MyEnum = (MyEnum)typeValue;

Tuesday, April 10, 2007 4:20 PM by Steven

# re: Function to Load Enum-Typed Properties from Database

Can you demo the usage?

Tuesday, April 10, 2007 4:27 PM by Christian

# re: Function to Load Enum-Typed Properties from Database

As for the usage, consider an enum named MyEnum and a variable of that enum type that you want to load from an int value, possibly one you've stored in the database -- just do the following:

MyEnum test = ToEnum<MyEnum>(value);

As for the direct cast, that's a good question, and I could have sworn I'd tried that many times and it didn't work -- although it did just now in my test.  Maybe I'm thinking of a limitation I encountered in .net v1 that I've been working around -- but maybe I'm wrong there as I didn't retest that assumption.  Oh well, it seems that its not necessary for .net v2 at any rate, and if you have generics then you have .net v2, so mute point I suppose.

Thanks for the comments.

Tuesday, April 10, 2007 4:37 PM by PaulWilson

# re: Function to Load Enum-Typed Properties from Database

I would throw something like this into your helper:

System.Diagnostics.Debug.Assert(typeof(T).IsEnum);

Thursday, April 12, 2007 12:26 PM by Dave T

# re: Function to Load Enum-Typed Properties from Database

all these helper function can not ensure valid value of enum.

at .net 2.0,

MyEnum test = ToEnum<MyEnum>(value);

support MyEnum only have two enum value, and the value is 10, no exception will throw. So i don't know MyEnum test now have a invalid value.

Friday, April 13, 2007 2:29 AM by Didasoft

# re: Function to Load Enum-Typed Properties from Database

You can call Enum.IsDefined in the helper function first to guarantee a valid value, and if it fails then throw an exception.  The same problem occurs with the simple cast syntax, so at least using a helper function makes it easier to add extra things like this when you find it is needed.

Friday, April 13, 2007 6:02 AM by PaulWilson

# re: Anyone heard of Login problems for some IE users?

Hello,

I am having the same problem.

It is affecting a very small portion of users who try to log into our site (<1%), and the common factor is that they are all using IE (6 or 7). Firefox works fine.

Recently we changed from our own customised authentication implementation which made use of the <asp:Login> control. With this implementation, we created a forms authentication ticket and issued it to the users, once we had done this we simply redirected through a Response.Redirect() to their requested page.

Now when we upgraded, we made the authentication method simply create a user profile once they had been authenticated, and then FormsAuthentication.RedirectFromLoginPage(Login1.UserName, false); to take them to their desired page.

I can gather this from Fiddler (on the problematic machine, NB also: all IE settings were default etc) :

The login.aspx repsonse is sending me a cookie from the site, as you would expect.

Then when I get forwarded to my target page (default.aspx), the cookie does not exist on the client, intsead I have this cookie... ASP.NET_SessionId=tp0k4x45mljteojyxnmexlz2, the Default.aspx response then redirects me back to the login page - as I'm not authenticated.

So for some reason, the client browser is not accepting the cookie. I am 100% satisfied that we have been through every setting in IE to allow cookies etc.

Can someone please shed any light on this?

Regards,

Thursday, April 19, 2007 1:54 AM by Sam McGoldrick

# re: Anyone heard of Login problems for some IE users?

I haven't heard anything about this except here on this thread.  I never had the user's computer to reproduce or debug either, so you have something much better than I did.  So please contact Scott Guthrie or open a bug report and let them know that you have a machine that they can come and reproduce it on.

Thursday, April 19, 2007 6:35 AM by PaulWilson

# re: Sorting and Paging Recordsets in SQL Server

Friday, April 20, 2007 3:47 PM by Olavo Neto

# re: Sorting and Paging Recordsets in SQL Server

This was written long before Sql 2005 was around with the RowNumber function.  My ORMapper does support using the RowNumber function with Sql 2005 for optimal paging.

Friday, April 20, 2007 4:48 PM by PaulWilson

# &raquo; Even Small Configuration Changes can cause Bigger Problems

# re: Using Reflection (and O/R Mappers) with Nested Classes

man, I was about to pull my hair out..

thanks a lot for the tip, you saved me hours

Monday, April 23, 2007 1:46 PM by Marco

# re: Anyone heard of Login problems for some IE users?

My problem is definately with master pages. The control works fine ( using my custom MembershipProvider )on a simple page with just the control itself. Same page placed in a content area of a master page and the

"Log In" button doesn't do anything.

Tuesday, April 24, 2007 10:34 AM by Adrian

# re: Anyone heard of Login problems for some IE users?

I have a login control that works fine ( with a custom MembershipProvider ) on a simple page, but in the content area of a master page, the Login button doesn't function.

Any feedback on this would be appreciated.  

I would guess that a control event handler is expecting a hardcoded name.

Tuesday, April 24, 2007 10:41 AM by AdrianZ

# re: ActiveReports, Crystal, or Other for ASP.NET

We use Stonefield Query out of Canada...A far superior product when compared to all of the alternatives...SQL Reporting Services is free, but somewhat limited in customization. Active Reports has the worst UI I have used. Crystal Reports is the oldest and should be the most flexible, but they seem to have forgotten the latter part.

Tuesday, April 24, 2007 4:26 PM by David House

# re: Function to Load Enum-Typed Properties from Database

Be careful about the performance of enum operations.

Tuesday, April 24, 2007 5:05 PM by Yang

# re: Great News: Only One O/RM Shipping in Orcas

I'm not as enthusiastic as you over Orcase dropping EF in favor of a supplemental post-RTM drop.

However, I am a fan of LINQ to SQL and tend to agree with you that EF is excessively complex.

--rj

http://oakleafblog.blogspot.com/2007/04/dj-vu-all-over-again-entity-framework.html

Sunday, April 29, 2007 8:31 PM by Roger Jennings

# re: Great News: Only One O/RM Shipping in Orcas

Hi Paul,

Yes like you I am actually relieved by this.  Linq to SQL will be powerful enough for many apps.

I am also relieved that I do not need to explain (yet) to our younger devs about these two frameworks.

Hopefully EF gets delayed longer (another year or two) and fits in better with Linq to SQL.

Sunday, April 29, 2007 10:11 PM by David Taylor

# re: Great News: Only One O/RM Shipping in Orcas

I agree that the Entity Framework is complex enough that not shipping an excellent designer with it makes no sense, but saying that LINQ to SQL is good enough for the vast majority of O/RM scenarios is just plain wrong.

Sunday, April 29, 2007 11:04 PM by Joe Chung

# re: Great News: Only One O/RM Shipping in Orcas

Yes I agree. LINQ to SQL looks so much better for many cases. The dissappointing information here though is the suggestion that we will not get support for dbs other than SQL Server in LINQ to SQL, or any enhancements around inheritance hierachies i.e concrete table per class. See my notes at: http://iancooper.spaces.live.com/blog/cns!844BD2811F9ABE9C!365.entry

Monday, April 30, 2007 6:49 AM by Ian Cooper

# re: Great News: Only One O/RM Shipping in Orcas

If you define your ORM as having two models, one relational and one object -- the "let's build the software twice" style of ORM that happens, LINQ doesn't quite help you.

However, if you have an ORM view that says 'including relational data in my objects', LINQ fits in the same fashion as embedded SQL.

And for the hip Rails/MonoRail style folks, LINQ could be a very cool way to get an ActiveRecord in C# that is more like  the Ruby variant.

Monday, April 30, 2007 7:08 AM by Will Ballard

# re: Great News: Only One O/RM Shipping in Orcas

Ian:  My understanding is that MS is not themselves supplying non-MS providers, but that does not mean that 3rd parties cannot fill that gap.

Joe:  Time will tell I suppose, but look at how many people are happy using my simple ORMapper, and then add MS designer and support, and being built-in.

Will:  I agree Linq to Sql is essentially the ActiveRecord pattern, and that's what really hot in both Rails and NHibernate communities -- simplicity.

Monday, April 30, 2007 7:22 AM by PaulWilson

# re: Great News: Only One O/RM Shipping in Orcas

LINQ to SQL is great and useful in many scenarios as you say, but I think it cannot be called ORM. You can call it an OR-bridge or something, but it lacks mapping capabilities. What you get on the object side is just a direct representation of relational data, and nothing you would expect from an object model. Really mapping relational data to ojbects can be very complex, but tools like the Entity Framework makes it easier.

Monday, April 30, 2007 4:56 PM by Diego

# re: Setting up SSL correctly with IIS and ASP.NET

Another way around the non-ssl IIS issue is to set a host header that will never occur, e.g nevergonnahappen.com. This will completely close the door to requests to the website.

Monday, April 30, 2007 5:21 PM by Benw Wicks

# re: Great News: Only One O/RM Shipping in Orcas

Microsoft should take on the model of other companies (Novell, IBM) and embrace solid open-source projects from an implementation and consulting front rather than try to emulate, where they have mixed success. Microsoft's funding and blessing of key OSS projects could be huge, and wouldn't hurt Microsoft at all.

I agree with your "simple is good" comment, too. Simple fits many needs, and your O/R mapper does just what an O/R mapper needs to do to fit the need of many projects. Speaking of which... have you seen the WilsonORWrapper I've been working on? http://www.hosted-projects.com/trac/computersims/wilsonorwrapper/

Tuesday, May 01, 2007 11:00 AM by Brian

# re: Vista will NOT support Developers

To set the record straight - or at least firmly crooked:

VS 2005 w/ SP 1 WORKS ON VISTA - with some issues. Nothing I have seen is a showstopper though...

VS 2003 SORT OF WORKS ON VISTA - ASP.NET Development will not work in the IDE - you can't install that feature because you can't install Frontpage Server Extensions.

That's been my experience, and I'm pretty close to the source - I work at the MS Corp. Campus, and that's the consensus here...

Regards...

Tuesday, May 01, 2007 4:15 PM by David John

# re: Atlanta .NET Developer User Group Meeting

Oh man.  This sounds really good.  I wish I could come to these but I have been so busy the last few months when I have been in Atlanta, I just haven't been able to make it.

Monday, May 07, 2007 8:43 AM by Wallym

# re: MySpace: My "Space" and My Thoughts

well , if you go to other websites you can get layouts , and you can get DIV layouts that makes it all different .

you can even find sites where you can make your own layouts . and they're very easy .

these sites help it make your site more personal .

i think the reason people are on myspace, is that it's just another form of msn , where you can chat with each other and all [:

Saturday, May 12, 2007 5:07 AM by josefine

# re: Check out my "Real" NHibernate Example App

I have been looking for a good example for long time now - i found yours and it were working the first time - damn good work! :)

Sunday, May 13, 2007 3:39 PM by Bjarne Pedersen

# re: IIS Applications, Virtual Directories, and ASP.NET

How cool that about 4 years later we can still find blog posts like this one... which denotes how everyone is still confusing IIS applications with virtual directories!

Tuesday, May 29, 2007 6:06 PM by Simone Busoli

# Trackbacking your entry...

[quote:c3529a8a16=\"MrRex\"]welcome, dotnetninja! I have seen some https: sites in the Google SERPs, but that doesn\'t mean a whole lot. It just makes me think that if you give the spiders access to it, then they will crawl it. But I\'m not all that familiar

Friday, June 01, 2007 3:34 PM by SearchGuild

# re: Atlanta .NET Developer User Group Meeting

blast, why do I always seem to stumble across these sort of announcements the morning after the event!? [grin] I'll catch you guys next time 'round.

Tuesday, July 10, 2007 9:47 AM by Steven

# Rhonda Tipton&#8217;s WebLog Web Links 12.10.2006 &laquo;

Pingback from  Rhonda Tipton&#8217;s WebLog Web Links 12.10.2006 &laquo;

Sunday, August 19, 2007 4:58 PM by Rhonda Tipton’s WebLog Web Links 12.10.2006 «

# re: O/R Mappers: Maximum Performance

What's happening if there are approx 100,000+ objects of Product (e.g., Product[] products = new Product[100,000]), will they make the app slow down?

Which is the best approach to manage a huge list of objects?

Thank you very much for any idea.

Lenny

Monday, August 20, 2007 6:31 AM by Lenny

# re: Running .NET WinForm Applications on Citrix

We're also trying to run .NET winforms on citrix using infragistics.  Our app's are copied to a file share, and then the exe is fired up from there.  We copied our infragistics dll's along with the rest of the files in the bin directory to that file share.  When the users start up the exe, it just opens the form and shuts down.  If we copy the same files over to a PC, it works fine. Has anyone else run in to this situation in regards to using the infragistics controls in a citrix environment deploying to a file share?  

My thoughts are that we would need to register the infragistic dll's in the GAC of all 3 citrix boxes we have.

Thursday, August 23, 2007 9:45 AM by MikeVoissem

# re: Running .NET WinForm Applications on Citrix

A file share is just where something is stored -- it does not actually run on the file share.  So yes, if something is necessary to run the exe, then it must be installed on the boxes that are going to actually run it -- citrix boxes in this case.

Friday, August 24, 2007 10:26 AM by PaulWilson

# re: O/R Mappers: Maximum Performance

It doesn't really matter if you're using an O/R Mapper or regular ADO.NET -- don't work with more objects/records than necessary.  If its something to display to the user then you use paging, and provide filtering and sorting options -- no person is going to look at 100,000 records.  If its something that needs processing, then do it the most efficient way possible, which would be in the database using sql or a stored proc.

Friday, August 24, 2007 10:29 AM by PaulWilson

# I’ve Been Tagged

In May I was blog tagged by Andy Schwam . So here are five things you may not know about me: I am a

Tuesday, September 04, 2007 8:50 PM by .NETicated

# re: Changing ASP.NET Forms Authorization Redirection

Another way to accomplish the same result in ASP.NET 2.0 is to use a LoginView control on your login page.  If a user is not logged in, you can display the Login control using the <AnonymousTemplate> section of the control.  Otherwise, you can display the not authorized message in the <LoggedInTemplate> of the control.

Thursday, September 06, 2007 11:30 AM by Jonathan

# .NET to run on Mac OS

Yes, as the title says, .NET will be running on Mac OS systems in the future. I was searching a different

Wednesday, September 26, 2007 1:40 AM by Raheel's Blog 

# re: New Job with McKesson and Other News

Congratulations on the new job.  Of course, as I work for the competition, I'm not sure I can associate with you any more :)

Seriously, though - hope you enjoy the new gig, even if the new drive is quite a bit longer.

Friday, December 21, 2007 2:15 PM by Jerry Dennany

# re: New Job with McKesson and Other News

Hi Paul! I was on the asp.net developer site at msft and saw "McKession" and that jumped out at me. I work for a company called Iatric Systems. We do lots of interface work off of one of (I think) your competitors, namely Meditech. I myself am a .NET developer, but new to the medical industry.

Anyway, if you get a chance drop me a line at derekbeyer@hotmail.com.

Have a great Christmas!

Friday, December 21, 2007 2:25 PM by Derek Beyer

# re: New Job with McKesson and Other News

Congrats on the new job Paul, I am glad to hear things are going well and that you will be doing some things you enjoy.  Keep us posted on what you learn. =)

Friday, December 21, 2007 2:33 PM by BrendonSchwartz

# re: New Job with McKesson and Other News

Great to hear you're happy and the family's well Paul.  :-)  Our little nipper Tane is 16 months now - and providing us with endless joy and wonder.  Taking him swimming in 5 minutes.  :-)

Friday, December 21, 2007 2:56 PM by Tim Haines

# re: New Job with McKesson and Other News

Small world.  I work for a company barely a 1/4 mile from that McKesson office on Windward.

Friday, December 21, 2007 3:01 PM by Dave

# re: New Job with McKesson and Other News

Congratulations on your new job @ McKesson. Ever since I moved to Atlanta I have been trying to get in but they are very s-l-o-w to respond. Glad you were able to make it.

Friday, December 21, 2007 6:18 PM by rams

# re: New Job with McKesson and Other News

Paul, you change jobs almost faster than me. :) Good luck to you, and I hope your new job meets and exceeds all your expectations!

Thursday, December 27, 2007 4:15 PM by Brian DeMarzo

# re: New Job with McKesson and Other News

Congrats! I am glad you are finding more value in spending time with family than doing work for people you don't owe anything to - while it is nice, it isn't necessary for being happy!

Tuesday, January 22, 2008 3:40 PM by Jason Bunting

# re: AppSettings can Reference an External Config File

It's great.  I got it to work for a web application that uses a business object (DLL) when I wanted to override the values defined in App.config in Web.config.  Based on my understanding, the advantage of defining values in the Web.config is that it updated every time the content is altered and it doesn't require restart.  Anyways, it's great stuff.

Friday, February 01, 2008 3:24 PM by Vincent

# Interesting Finds: February 14, 2008

Thursday, February 14, 2008 10:05 AM by Jason Haley

# re: Do .NET 2.0 SP1 Binaries Fail Without SP1?

Yes, if you use VS2008, you must deploy SP1. Anything else is just working with luck and is unsupported.

Thursday, February 14, 2008 10:45 AM by Daniel Moth

# re: Do .NET 2.0 SP1 Binaries Fail Without SP1?

Just to clarify, I'm using VS 2005, not the multi-targeting feature of VS 2008.  I suspect that's still a mute point, but I just wanted to make sure we're all on the same page.

I think its fair to suspect that if you start using VS 2008 to build your 2.0 apps then you probably are knowingly taking some "risks", while I think most of us would never suspect that just putting VS 2008 on our machines now forces us to update all our deployment machines!

Thursday, February 14, 2008 10:52 AM by PaulWilson

# re: Do .NET 2.0 SP1 Binaries Fail Without SP1?

Hi, Paul: Have you tried adding a <supportedRuntime> entry to the app's .config file? http://msdn2.microsoft.com/en-us/library/9w519wzk(VS.80).aspx

Thursday, February 14, 2008 11:28 AM by Phil Weber

# re: Do .NET 2.0 SP1 Binaries Fail Without SP1?

Good idea, but this is where MS hasn't been very kind in their versioning.  They may have kept v1.0, v1.1, and v2.0 separate, but service packs just update the existing version in place so there is no different "version" to reference.  Then by making v3.0 and now v3.5 simply reference v2.0, instead of being a real complete new version, they made it worse since v3.5 ended up requiring a service pack to be made to both v2.0 and v3.0.

Thursday, February 14, 2008 12:40 PM by PaulWilson

# re: Do .NET 2.0 SP1 Binaries Fail Without SP1?

You can use VS 2008 to develop applications that work with .NET 2.0 or .NET 2.0 SP1.

The only trick with targeting .NET 2.0 directly is that you need to make sure you don't use any API introduced with .NET 2.0 SP1.  Otherwise you'll get an exception when you try to call it with vanilla .NET 2.0 (note: this same issue exists with VS 2003 and .NET 1.1 SP1).

We are looking in the future to enable VS to automatically filter intellisense based on SP target to help people avoid this.  I believe there is a FXCOP rule you can use now as a post build step to check.

Also - if there are behavior changes in an API with an SP (which might be what you are running into above), you can run into problems if your old assumption about the behavior has changed.  In general we really try hard to impact people this way (we have a strict breaking changes policy), but since bug fixes are by definition behavior changes (by fixing the bug you are changing the old behavior) sometimes these effect existing applications.  This is true for both VS 2005 and VS 2008.

Hope this helps,

Scott

Thursday, February 14, 2008 12:45 PM by ScottGu

# re: Do .NET 2.0 SP1 Binaries Fail Without SP1?

This is almost exactly the issue I had with the vista .net assemblies when vista came out - it was 2.0, but the xml serialization was different than the 2.0 on my xp machines.  Now those differences have been put in sp1, so it's no longer a vista/xp issue.

See philiprieck.com/.../933.aspx

Thursday, February 14, 2008 2:18 PM by Philip Rieck

# re: Do .NET 2.0 SP1 Binaries Fail Without SP1?

Simply compiling in the presence of SP1 won't cause problems.  But, the presence of SP1 means you can use new methods/classes introduced in SP1.  HttpServerUtility.TransferRequest (which only applies to ASP.NET applications), for example, doesn't exist in .NET 2.0 prior to SP1; so there's no way you can use it without installing SP1 on your development computer.  Once you install SP1 and use HttpServerUtility.TransferRequest all your clients must then have SP1 too.

See also www.hanselman.com/.../CatchingRedBitsDifferencesInNET20AndNET20SP1.aspx

Thursday, February 14, 2008 4:21 PM by peter ritchie

# re: Do .NET 2.0 SP1 Binaries Fail Without SP1?

Scott and Peter:  If only things were as simple as we're led to expect.

From my point of view, I've done enough today to prove it does matter!  That's right, I built my virtual machine, with VS 2005 but not SP 1 for .net 2.0, and then I ran the very same Nant script that I do on my dev machine, which gets the source, sets the version info, and compiles it all -- and it worked just fine when I deployed it to my QA environment.  No code differences at all, just different machines compiling it, one with SP 1 and one without.

I'll be the first to admit I haven't proved anything, since my dev machine certainly has other things on it that are also not on my new virtual machine.  But the only 3rd party reference in my projects is log4net, so none of those other things should in principle have any chance of messing up my build, while its hard to argue that since SP 1 clearly does change things that it just might.  And I see just enough from others to feel I'm not alone, including:

philiprieck.com/.../933.aspx

discuss.joelonsoftware.com/default.asp

Thursday, February 14, 2008 7:48 PM by PaulWilson

# re: Do .NET 2.0 SP1 Binaries Fail Without SP1?

That is th only reason i am taking cautions to use vs2008 on my development machine.

I have BI,Devices,and webapplication.

I get to know that vs2008 is not for sql server 2005 related business intellegence solution but for sql server 2008.

Also in vs2008 i can't find option to target a device application to use compact framework 1.0

So there should be some page from microsoft for addressing the possible problems.

Friday, February 15, 2008 1:23 AM by Kamran Shahid

# re: Tip on Saving ViewState on Server

I had the same issue. The resolution I found and is working for me is...comment the second line of code ie.,

"// Keep the viewstate hidden variable but with no data to avoid error

 RegisterHiddenField("__VIEWSTATE", "");".

That is reinserting multiple tags of __VIEWSTATE instead of actually replacing/working with one tag.

Monday, March 03, 2008 3:13 PM by Yarla

# re: Setting up SSL correctly with IIS and ASP.NET

Great post. Excellent solution.

Wednesday, March 05, 2008 6:07 PM by Paul Litwin

# Forcing SSL Gracefully on a Site

This is one to remember. Paul Litwin has posted about forcing SSL gracefully on a site using a post from

Wednesday, March 05, 2008 8:54 PM by Rory Primrose

# Hardware IT Blog &raquo; Blog Archive &raquo; Review of Excellent Book: Linq in Action

Pingback from  Hardware IT Blog  &raquo; Blog Archive   &raquo; Review of Excellent Book: Linq in Action

# Book Reviews

Pingback from  Book Reviews

Wednesday, March 12, 2008 11:34 PM by Book Reviews

# Link Listing - March 12, 2008

Link Listing - March 12, 2008

Thursday, March 13, 2008 3:13 AM by Christopher Steen

# re: Review of Excellent Book: Linq in Action

Paul,

Can you compare LINQ In Action to any of the other LINQ books on the market, or is this your first one?

-Tisho

Thursday, March 13, 2008 10:15 AM by Tisho

# re: Review of Excellent Book: Linq in Action

I've seen others and this one is better.  I've actually received another to review that was so bad that I told the publisher they probably didn't want my review to be posted.  :(

Thursday, March 13, 2008 7:53 PM by PaulWilson

# devry university

Pingback from  devry university

Friday, March 21, 2008 4:08 PM by devry university

# arcadia university

Pingback from  arcadia university

Saturday, March 22, 2008 5:58 AM by arcadia university

# LINQ in Action reviews and quotes

Since our LINQ in Action book was published last month, we are lucky to receive a lot of nice feedback

Sunday, March 23, 2008 7:06 PM by LINQ in Action - LINQ Book & News

# LINQ in Action reviews and quotes

Since our LINQ in Action book was published last month, we are lucky to receive a lot of nice feedback

Sunday, March 23, 2008 8:12 PM by LINQ in Action - LINQ Book & News

# dotNet Application Framework &laquo; maonet technotes

Pingback from  dotNet Application Framework &laquo; maonet technotes

Thursday, March 27, 2008 3:32 PM by dotNet Application Framework « maonet technotes

# re: Anyone heard of Login problems for some IE users?

Hmm... same problem here.  I'm using a custom membership provider and master pages.  My login button does not submit in IE 7 but works perfectly in Firefox 2.  What's crazy is that when I remove the master page references and take my login control out of the content place holder and into a form in the login page, it works perfectly.  In summary, custom membership provider + login control + master page = no worky.

Saturday, March 29, 2008 8:26 PM by Cheezus

# document location firefox problem

Pingback from  document location firefox problem

Saturday, April 05, 2008 10:01 AM by document location firefox problem

# logiccolony.com/blog :: .NET on OSX

Pingback from  logiccolony.com/blog   ::  .NET on OSX

Tuesday, April 08, 2008 9:27 PM by logiccolony.com/blog :: .NET on OSX

# Login control ASP.NET works in Firefox, not in IE

Login control ASP.NET works in Firefox, not in IE

Sunday, May 11, 2008 3:46 PM by ZaszBlog

# re: Anyone heard of Login problems for some IE users?

Sunday, May 11, 2008 3:53 PM by Zasz

# re: Anyone heard of Login problems for some IE users?

I've removed Master Pages from my login page and still I get this error. It is so puzzling, but it's good to know that this is a known problem. I have to tell my users to use Firefox, I'm not sure what else to do.

But the fact remains: the built in Login Control for ASP.NET 2.0 does not work properly.

We really need an answer, this is just not acceptable.

Tushar

Tuesday, May 13, 2008 5:40 AM by tushar101

# re: Anyone heard of Login problems for some IE users?

lo and behold miracles are possible! I have found a solution. Took me ages to find and in the end it's so simple.

In IE go to Tools-->Internet Options-->Privacy-->Tick OVERRIDE AUTOMATIC COOKIE HANDLING-->Accept or Prompt First-party Cookies, Accept or Prompt Third-party Cookies. You may need to configure/switch off ZoneAlarm too

Hope that helps. I can release my database to my clients now!

Tushar :-D

Tuesday, May 13, 2008 2:02 PM by tushar101

# Phil Bernie Consulting &raquo; 7 Things That Will Make You a Better ASP.NET Web Developer

Pingback from  Phil Bernie Consulting &raquo; 7 Things That Will Make You a Better ASP.NET Web Developer

# re: Pet-Sitter Recommendation: Wholistic Sitting

Tanya has been taking care of our two dogs, Rudy a yellow Lab and Jessica a Golden

Retrvr. Recently Jessica underwent cancer surgery and we thought we were losing her. Tanya came over right away and did her Reike treatment, repeating it over several days. The improvement in Jessica was amazing. I know she would not have made it without Tanya's healing.

Thanks again Tanya, we look forward to you caring for our pets in the future.

Sincerely,

Patty and Pat.

Monday, July 21, 2008 9:14 PM by Patty & Pat, Canton Georgia

# re: New Job with McKesson and Other News

Well I just got offered a position to work for mckesson but I am not sure if I should take it because I also got offered a governmenmt position as well and I just graduated and I am trying to find out so info on Mckesson and moving up in there company.  Can anyone  help?

Saturday, July 26, 2008 10:24 PM by Chasity

# re: New Job with McKesson and Other News

Chastity: I certainly can't pretend to know what is best for you, but for me McKesson has been a great place to work so far.  Its a huge company (Fortune 18) with lots of opportunities for good people, including opportunity to grow over time.

Sunday, July 27, 2008 10:17 AM by PaulWilson

# re: In Memoriam to My Nephew, Matthew O'Bryant

Our deepest condolences to you, your family, Matthew's wife and many friends.  We can hardly begin to repay the immense sacrifice that brave souls like Matthew and their families have made on our behalf.

Friday, September 26, 2008 4:05 PM by Eric W. Bachtal

# re: In Memoriam to My Nephew, Matthew O'Bryant

Paul, be strong.  Nothing will replace you loss.  Ours prayers to you and you families.

Andrey.

Saturday, September 27, 2008 2:18 AM by andrey

# re: In Memoriam to My Nephew, Matthew O'Bryant

my most sincere condolences to your entire family!!! it is such a pity that a young man lost his life. Hope good and happy things happen to his family in the future.

Saturday, September 27, 2008 5:25 AM by nikos

# re: In Memoriam to My Nephew, Matthew O'Bryant

Paul,

You and your family have my heartfelt support. I have lost 3 of my best friends in Iraq. I have a sense of your family's loss and disruption.

Thank you Paul for sharing this very personal event with the us here. Thank you to Matthew for his service.

Respectfully,

Harry Coles

Saturday, September 27, 2008 11:19 AM by Harry Coles

# re: In Memoriam to My Nephew, Matthew O'Bryant

My thoughts and prayers go out to you and the whole family! My cousin is Bridgett O'Bryant(his wife) and while they were stationed up here at Ft. Meade,MD I was able to meet him and hang out with them and Matt was a really great guy and a sailor. He was very proud of what he did.

Saturday, September 27, 2008 12:01 PM by santana callicott wieben

# re: In Memoriam to My Nephew, Matthew O'Bryant

Paul, I assure you that people in Pakistan remember those who were killed and the families who lost their loved ones in their prayers.

Sunday, September 28, 2008 1:16 AM by Zubair.NET!

# re: In Memoriam to My Nephew, Matthew O'Bryant

Paul,

 I'm really sorry to hear about your loss.  You have my deepest condolences.  

Monday, September 29, 2008 12:37 AM by Steve Smith

# re: In Memoriam to My Nephew, Matthew O'Bryant

I was Matt and Bridgett's pastor in Laurel, Maryland.  We have only known them for a short time but we love them dearly.  It was such a shock to all of our church family to hear the news.  Matt and Bridgett were both vital parts of our children's ministry.  Our deepest sympathy and prayers go out to the family.

Monday, September 29, 2008 7:31 PM by chris mcmillan

# re: In Memoriam to My Nephew, Matthew O'Bryant

HE IS NOT FALLEN, BUT RISEN, NOT DEAD

BUT IN THIS PATH WE MORTALS TRED,

ONLY GONE A FEW TRIFILING STEPS AHEAD,

AND NEARER TO THE END.

AND YOU TOO, MY FRIEND, ONCE PAST THAT BEND

SHALL MEET AGAIN WITH THIS FRIEND YOU

FANCIED DEAD.

Tuesday, September 30, 2008 11:48 AM by PATTI TEOFILO

# re: In Memoriam to My Nephew, Matthew O'Bryant

Hi Paul,

My sincere condolences, May god bless his soul and give strength and support to his family during these hard times..

God will not forgive them those who have done this and supported this..

Tuesday, September 30, 2008 12:24 PM by Nexustoday

# re: .NET GC Best Practice -- ALWAYS Call Dispose

Nice discussion but no one have mentioned the ASP.NET control´s Dispose method. And I´m curious on that issue because many controls have the Dispose and what we harldy see is them being called in the code behind.

Thursday, October 09, 2008 2:21 PM by Fergara Adachi

# re: In Memoriam to My Nephew, Matthew O'Bryant

My thoughts and prayers are with you,Bridgett, and the rest of the family and friends.  I was one of Matt's classmates while we were at NAS Pensacola and Corry Station.  I have been assigned to a ship and was out to sea when the news was left on my phone.  I cannot imagine what you are going thru, I can only offer my prayers, thoughts, and willingness if you need any help. Matt was a shining example of selflessness and courage to fight for what he thought was right - and unfortunately he paid the ultimate cost.  Even tho I too am in the service, I owe him.  You can contact me anytime.  ctmallen2007@yahoo.com

God Bless you all.

Thursday, October 16, 2008 8:02 PM by CTM2 Allen

# re: In Memoriam to My Nephew, Matthew O'Bryant

Sad to hear of the passing of a shipmate.  I got out of the Navy in July of this year and found your site while doing a search of my name.  What tragic coincidence.  

Eternal Father, strong to save,

Whose arm hath bound the restless wave,

Who bidd'st the mighty ocean deep

Its own appointed limits keep;

Oh, hear us when we cry to Thee,

For those in peril on the sea!

Thursday, October 23, 2008 10:27 PM by Paul Wilson

# re: Nullable Types are NOT Integrated in .NET v2.0

Work-around for NumericUpDown and databinding to dbnull.

Here is the crappy workaround I came up with to handle the fact that Nup controls silently fail on databinding to DBNull.

My scenario is that I have a DataGridView and when the user moves from row to row I display some other information and some of that information is displayed in NumericUpDown controls.

On the WinForm I add a hidden textbox control right under the Nup control and set its DataBindings to be the same as those of the Nup control.

In my SelectionChanged event handler for the dgv, I have check the textbox to see if its nullorEmpty and if so then call the Nup's ResetText and set its Value to be zero, else set its value to be the value in the textbox.

This seems to work.

Sample of my code:

if (string.IsNullOrEmpty(this.TxtLIWage.Text))

{

   this.NupLIWage.Value = 0m;

   this.NupLIWage.ResetText();

}

else

{

   this.NupLIWage.Value = StringToNumber.ConvertToDecimal(this.TxtLIWage.Text);

}

The StringToNumber is my own class that handles converting text to decimal and takes care to culture (Canadian English/French).

This crappy workaround might also come in handy for dealing the DateTimePicker controls too.

Hope this is helpful to others.

Sheir

Tuesday, October 28, 2008 5:45 PM by sheir

# re: In Memoriam to My Nephew, Matthew O'Bryant

it's so sad. My deepest condolences to you and your family.

Saturday, November 15, 2008 12:54 PM by Roman R

# re: When Do You Recommend DNN and When Do You NOT

I am using DNN for one of my site and involving in developing DNN sites for a large company in the UK, the reason I am choose DNN because I am a .NET developer and DNN enables me to do my task quick for customers. There are lot of high quality commercial modules that you can buy for quick implementation  or you would spend several years to build your self. Now the bad thing about DNN is that make new module is scary thing with its DAL, Info class.Also making skin (themes) in the framework are not simple as you do with master page.

Sunday, November 30, 2008 4:13 AM by Pokahontas

# New and Notable 92

Time to empty the FeedDemon flagged list. Jeff Key updated the indispensable Snippet Compiler a few weeks back. Mr. Agile Configuration Management, Brad Appleton has put up a very valuable page of Iterative Development Resources. Make sure you bookmark

# re: In Memoriam to My Nephew, Matthew O'Bryant

I graduated from Theodore High School with Matthew. He was also in JROTC with me and he was an awesome person. His love for the Lord and his pride in what he did inspired me so much. I am so terribly sorry for your loss and I will continue to pray for your family. God Bless your family and America Bless God

Sunday, December 07, 2008 2:52 AM by Michelle Wood (nee Rhodes)

# re: .NET GC Best Practice -- ALWAYS Call Dispose

If my class uses just private variables( no other resources and unmanaged code) like:

Class Test

{

#region Fields

private int test1;

#endregion

#region Properties

public int Test1{ get; set; }

#endregion

}

Do I need to implement Dispose method for this class?

Thanks in advance...

Friday, January 02, 2009 1:36 AM by Chintan Shah

# re: .NET GC Best Practice -- ALWAYS Call Dispose

No, you don't need a Dispose method unless you have something else, like a file or stream or db connection, that needs Disposing.

Friday, January 02, 2009 9:07 AM by PaulWilson

# .NET Memory Management – Resources

Note : This entry was originally posted on 9/14/2008 5:16:11 PM. I present at a lot of the local Florida

Saturday, January 10, 2009 6:40 PM by Scott Dorman's Blog

# Setting up SSL with IIS for ASP.NET | Don Kitchen

Pingback from  Setting up SSL with IIS for ASP.NET | Don Kitchen

Monday, January 12, 2009 10:57 AM by Setting up SSL with IIS for ASP.NET | Don Kitchen

# baza danych (lub provider) oparty o dane z XMLa | hilpers

Pingback from  baza danych (lub provider) oparty o dane z XMLa | hilpers

Thursday, January 22, 2009 11:27 PM by baza danych (lub provider) oparty o dane z XMLa | hilpers

# abusing.me &raquo; Blog Archive &raquo; Framework UI - DataBindings und Nullable&lt;T&gt;

Pingback from  abusing.me  &raquo; Blog Archive   &raquo; Framework UI - DataBindings und Nullable&lt;T&gt;

# re: .NET GC Best Practice -- ALWAYS Call Dispose

Thanks for your reply. I am using Microsoft Enterprise Library and one of my method in DAL looks like:

Database db = DatabaseFactory.CreateDatabase();

DbCommand myCommand = db.GetStoredProcCommand("MySPName");

Do I need Dispose for db(Database Connection) and myCommand(Db Command)?

Also when I use SMTP object to send mail, Do I need to call Dispose Method?

In short, can you please tell me the type of the objects that require Dispose()?

Thanks in advance...

Monday, January 26, 2009 11:58 PM by Chintan Shah

# re: .NET GC Best Practice -- ALWAYS Call Dispose

Like many others I assumed Dispose was an automatic functionality; reenforced by Microsoft's own lack of explicit calls in their designer generated code.

I'm learning now (painfully) that this isn't the case. My question to you though, is should this extend to UI components?

Should I (do you) call the Dispose method of all controls added to a form/usercontrol (through the designer or not.)

Wednesday, January 28, 2009 12:37 PM by Aaron Young

# re: .NET GC Best Practice -- ALWAYS Call Dispose

So what is the verdict on calling dispose on connections then? Because if you don't call it for database connectiosn then basically the only time you actually need to call it is when using a fileStream or TextStream basically right? So in 99% of your .net code you will never call dispose correct?  

Sunday, February 08, 2009 3:47 PM by matt

# re: .NET GC Best Practice -- ALWAYS Call Dispose

Database connections definitely need to be closed or disposed (close calls dispose).  You can use a try / finally block, with close or dispose in the finally block, or use a "using" block, which translates to the try / finally block in the il without all the work for you.

What other objects should have dispose called?  In general any object that implements IDisposable should use try / finally or "using" to make sure dispose gets called.  There are certainly some cases where we may be "smart" enough to know it doesn't matter, but you may be wrong, and it may change in the next version, so don't be too "smart"!

Sunday, February 08, 2009 7:37 PM by PaulWilson

# Nullable Types in .Net 2.0 &laquo; CollectedDotNet

Pingback from  Nullable Types in .Net 2.0 &laquo; CollectedDotNet

Tuesday, April 28, 2009 10:25 PM by Nullable Types in .Net 2.0 « CollectedDotNet

# O/R Mapping (Object/Relational Mapping)

Quem é que ainda não conhece o NHibernate , LLBLGen Pro entre outros ? Como sabem estas &quot;tools&quot;

Saturday, June 13, 2009 4:13 PM by rbfigueira

# O/R Mapping (Object/Relational Mapping)

Quem é que ainda não conhece o NHibernate , LLBLGen Pro entre outros ? Como sabem estas &quot;tools&quot;

Sunday, June 28, 2009 4:09 PM by rbfigueira

# O/R Mapping (Object/Relational Mapping)

Quem é que ainda não conhece o NHibernate , LLBLGen Pro entre outros ? Como sabem estas &quot;tools&quot;

Monday, June 29, 2009 6:19 PM by rbfigueira

# Property with Formula (generated=always) generates invalid SQL for post-insert Select | rapid-DEV.net

Pingback from  Property with Formula (generated=always) generates invalid SQL for post-insert Select | rapid-DEV.net

# re: Help: WebResource.axd Not Serving for Some Users

Paul,

What do you mean by "call to...for some users is failing"? Did you try make a direct request for the resource? What error does the server respond with?

Try using Fiddler to see the requests and look at what is being sent and what is being returned for the axd requests when logged in as one of those users.

www.fiddler2.com/fiddler2

Raj

Sunday, August 09, 2009 10:47 PM by rajbk

# re: Help: WebResource.axd Not Serving for Some Users

Any invalid view state exceptions showing up in the event logs?

connect.microsoft.com/.../ViewFeedback.aspx

Tuesday, August 11, 2009 3:35 PM by Matt

# re: Help: WebResource.axd Not Serving for Some Users

It looks like the problem lies entirely with the portal's gateway, as the webresource.axd is being sent from IIS even when the portal does not serve it up.  It looks like we have a viable work-around by making our internal calls from our portal server to our .net portlet servers be https, matching our external client calls to our portal server, although that doesn't really make sense that it would matter.

Tuesday, August 11, 2009 3:58 PM by PaulWilson

# Video &#8211; Reuni&oacute;n ALT .NET Caf&eacute; 29 De Agosto &laquo; BeyondNet

Pingback from  Video &#8211; Reuni&oacute;n ALT .NET Caf&eacute; 29 De Agosto &laquo;  BeyondNet

Friday, September 04, 2009 2:11 AM by Video – Reunión ALT .NET Café 29 De Agosto « BeyondNet

# Brainsick Patterns &#8212; No Code Relation &raquo; Blog Archive &raquo; C# Dispose

Pingback from  Brainsick Patterns &#8212; No Code Relation  &raquo; Blog Archive   &raquo; C# Dispose

# ?????? ???????? ?????? ???????????? https - Persian Networks

Pingback from  ?????? ???????? ?????? ???????????? https - Persian Networks

Saturday, February 20, 2010 1:53 PM by ?????? ???????? ?????? ???????????? https - Persian Networks

# Twitter Trackbacks for The Truth about Stored Procs and O/R Mapping - Paul Wilson's .NET Blog [asp.net] on Topsy.com

Pingback from  Twitter Trackbacks for                 The Truth about Stored Procs and O/R Mapping - Paul Wilson's .NET Blog         [asp.net]        on Topsy.com

# Rich Internet App Development

Pingback from  Rich Internet App Development

Monday, June 14, 2010 2:06 AM by Rich Internet App Development

# So who&#8217;s not setting their objects to null? &#8211; .NET, Web development, Contract programming

Pingback from  So who&#8217;s not setting their objects to null? &#8211; .NET, Web development, Contract programming

# Deploy .net windows application on citrix | hardware wacool

Pingback from  Deploy .net windows application on citrix | hardware wacool

Saturday, October 02, 2010 10:07 AM by Deploy .net windows application on citrix | hardware wacool

# Setting up SSL correctly with IIS and ASP.NET | WebHosting Matters

Pingback from  Setting up SSL correctly with IIS and ASP.NET | WebHosting Matters

# Bridgett bryant | Sejani

Pingback from  Bridgett bryant | Sejani

Friday, March 25, 2011 8:06 AM by Bridgett bryant | Sejani

# Post Back Hell : To Read &amp; Pounder&#8230;.. &laquo; SwimmingPool.Net

Pingback from  Post Back Hell : To Read &amp; Pounder&#8230;.. &laquo; SwimmingPool.Net

Wednesday, August 31, 2011 1:43 AM by Post Back Hell : To Read & Pounder….. « SwimmingPool.Net

# Use Full Website&#8230; &laquo; nishantcomp2512

Pingback from  Use Full Website&#8230; &laquo; nishantcomp2512

Thursday, October 06, 2011 3:49 AM by Use Full Website… « nishantcomp2512

# Appsettings file | Moneymaketonli

Pingback from  Appsettings file | Moneymaketonli

Thursday, November 03, 2011 6:58 PM by Appsettings file | Moneymaketonli

# Authorization redirect | Supernaturalrocks

Pingback from  Authorization redirect | Supernaturalrocks

Tuesday, January 03, 2012 2:49 AM by Authorization redirect | Supernaturalrocks