Frans Bouma's blog

Generator.CreateCoolTool();

Syndication

News

    Visit LLBLGen Pro's website

    Follow FransBouma on Twitter

    Add to Technorati Favorites

About me

Fun stuff I created

My work

Published by

Comments

# re: I'm alive!@ Monday, May 05, 2003 11:04 PM

welcome!

Greg Robinson

# re: I'm alive!@ Monday, May 05, 2003 11:06 PM

Thanks, buddy. :) I'll add your blog to my list of links. :)

Frans Bouma

# re: I'm alive!@ Monday, May 05, 2003 11:55 PM

Howdy, noticed your sig on GoT, welcome on board :)

Paul

# re: I'm alive!@ Tuesday, May 06, 2003 12:05 AM

Heya Paul :D. I was looking for your blog but couldn't find it. Will add a link as well :)

Frans Bouma

# re: T-SQL Tip of the day@ Tuesday, May 06, 2003 6:48 AM

This would be a nice LLBLGen 1 addition!

Paul Gielens

# re: T-SQL Tip of the day@ Tuesday, May 06, 2003 7:12 AM

Yeah :) I was investigating some techniques to implement variable filtersets on resultsets (i.e. joined columns from one or more tables/views), for the O/R layer for LLBLGen v2. One of them was this technique, the other was a dynamic build query using parameters and build using a stringbuilder and then fed to a command. The stored procedure as shown above was slower than the dynamicly created query. I tested it with random input parameters, and the stored procedure couldn't keep up. That was an eyeopener though, so I'll include a dynamic query engine.

But LLBLGen v1.x can indeed win a lot with this, because the sole thing lacking in it is the ability to write custom selects on a combination of fields. With this technique that would be possible.

Frans Bouma

# Frans Bouma's blog@ Tuesday, May 06, 2003 7:59 AM

Frans Bouma's blog

TrackBack

# re: T-SQL Tip of the day@ Tuesday, May 06, 2003 11:37 PM

Any movent in the LLBLGen workspace?

Paul

# re: T-SQL Tip of the day@ Tuesday, May 06, 2003 11:44 PM

Not that I'm aware of. some people joined lately but I haven't checked if they were very active. it goes as with most OSS projects: big plans by a lot of people, but a few really execute these plans.

Frans Bouma

# re: I'm alive!@ Wednesday, May 07, 2003 1:59 AM

Hey Frans! Welcome!

Eric J. Smith

# re: I'm alive!@ Wednesday, May 07, 2003 3:19 AM

Thanks Eric! You got a blog yourself I can link to?

Frans Bouma

# Emitter@ Wednesday, May 07, 2003 4:03 AM

Emitter

TrackBack

# ShowUsYour-Blog!@ Wednesday, May 07, 2003 4:28 AM

ShowUsYour-Blog!

TrackBack

# re: It's not all bizznizz apps@ Wednesday, May 07, 2003 11:11 PM

Just a little FYI, CsGL is not just for c#. One of the reason the new library's called something different is this reason. The new library being worked on is CLS-compliant as well as cross-runtime/platform. We've got some cool stuff coming down the pike. As always, as listed on my (sad) page, which is hosting the new library, I could really use some non-Windows testers.

Ridge

# ISerializable@ Thursday, May 08, 2003 3:54 AM

ISerializable

TrackBack

# re: Borland's prices are too high?@ Thursday, May 08, 2003 6:31 AM

I'd like to do perform a feature comparison before I made a judgement, but on its face I don't think $999 seems too high if the product features are that compelling.

Think of it this way- if you're a carpenter, how much do you pay for your tools over time? I know that the tools are extremely expensive, and that they are maintained and replaced over time as needed. What's the value of what you produce with those tools? For those of us working in software development, these are the tools we use as part of the trade, and the work that we produce with them justifies their cost to a large extent.

randy

# re: Borland's prices are too high?@ Thursday, May 08, 2003 11:40 AM

I just appreciate you addressing the HTML reformatting issue with MS. Be sure to post their response when it comes forth.

Ron Green

# re: Relationships@ Friday, May 09, 2003 3:32 AM

That's a big post Frans! :-)

Eric J. Smith

# re: Relationships@ Friday, May 09, 2003 3:40 AM

heh :) yeah, it turned out much larger than expected because I thought I had to explain some stuff before diving into what I wanted to say. :)

Frans Bouma

# ISerializable@ Friday, May 09, 2003 6:30 AM

ISerializable

TrackBack

# re: XPath in T-SQL?@ Saturday, May 10, 2003 4:43 AM

I have to disagree - while I'm very worried about CLR code showing up in SP's, I think pattern matching is a natural extension of SQL and a welcome extension. Like SQL, XPath is used to define "what" I want (declarative), rather than "how" to do what I want (procedural). The WHERE clause is used to filter records, and becomes much more powerful if it can match on addresses with apartment numbers, text fields containing URL's, etc. I very much agree that procedural constructs in SP's is a bad paradigm mix, but SQL has long needed some improved pattern matching abilities.

Jon Galloway

# re: Relationships@ Saturday, May 10, 2003 5:36 AM

There is a solution to your first woe: denormalize for performance.

What is the difference between maintaining an OrderCount property in a Customers object (or OrderExists, or whatever it is you want to record about the relationship), and providing a field in a Customers table with OrderCount?

If you don't like the performance hit of traversing Orders, then don't. Denormalize for performance.

Your complaint about using intermediate tables: "which entity is this intermediate table representing? None..." shows either a basic misunderstanding of abstraction, or a double-standard, as you don't seem to have a problem with the concept when OO-methods do it.

Yes, a relationship is an entity -- an abstract entity. (Note, "abstract" is used with its common English definition here, not the OO definition.) Not every table which defines a many-to-many relationship entity contains additional fields describing the relationship, and this does not make the relationship's abstract reality a "bad thing" in any way.

Hiding the reality of the relationship entity, or giving it less "value" as a real thing to be considered in design is a mistake.

Then, happily your CMS example discusses the real differences between object and relational data models. For a given situation, one will provide a more efficient representation than the other. And once you commit to one or the other, translating back and forth is a rough boundary to cross, best avoided if possible. These are the points that need to be blogged and taught until everyone knows 'em.

Since your point was not to write about the merits of the relational model, it is understandable that you did not include an example where the storage and retrieval inefficiences of the object model make it a worse choice than the relational model.

The real solution is to understand both approaches well enou

Eli Robillard

# re: XPath in T-SQL?@ Saturday, May 10, 2003 12:31 PM

I have to disagree as well. XPath comes because of the XML support in Yukon. Apart from that it doesn't make a ton of sense, however, you definately don't want to query xml data with T-SQL... because T-SQL is designed for RDBMS systems, not xml.

Jesse Ezell

# re: XPath in T-SQL?@ Saturday, May 10, 2003 8:51 PM

If they use it solely to add new predicate clauses to the WHERE clause, indeed to filter out rows matching the single XPath clause, it is ok to me, however the usage of XML as a storage form, requires the existence of XSL and XPath to work with the XML, and I do not see how these two can be mixed with T-SQL.

Frans Bouma

# re: Relationships@ Saturday, May 10, 2003 8:58 PM

The problem I have is about the very different ways of how relations are physically stored in the database: via foreign key constraints, via combinations of constraints, via check-constraints, via instead of triggers etc. While you can store relations ALWAYS via a separate object which holds the complete information about the relationship, which entities are involved, which attributes participate in the relationship etc. You then eliminate the necessitiy of intermediate tables plus f.e. the necessity of needing f.e. combinations of constraints or the addition of attributes which serve no meaning. Intermediate tables which formulate the m:n relations (like non-obvious intermediate tables like 'Orders' in Northwind which defines the m:n relation between Employees and Customers) can be entities, but are necessary to formulate a relation between two OTHER entities. That's weird. You'd like to define that relationship with only the two entities involved, since these entities have the relationship.

Frans Bouma

# re: XPath in T-SQL?@ Monday, May 12, 2003 2:44 AM

As you say, XPath is a pattern matching language, so it is a natural fit for using in the where clause. It is not functional at all. XSLT is (although some disagree), but XPath isn't.

What the MS plans are for merging OO code with XML and RDBMS paradigms is still unclear to me as well, but this article might shed some light: http://www.research.microsoft.com/~emeijer/Papers/oopsla.pdf

I do not expect this kind of technology in the Yukon release though.

Teun Duynstee

# re: 'You want a Dataset with that DAL, sir?' 'No, thank you.'@ Tuesday, May 13, 2003 2:15 AM

Even with a data reader, you will end up caching data in memory at some point along the line (whether it is in your own objects, the UI, etc.). Not using the DataSet does little to solve this problem. What it all boils down to is that there isn't any really easy way to get around the concurency issue in a disconnected environment.

DataSets are very cool. ObjectSpaces, which are built on top of the DataSet (at least at the time of the last preview), will let you do the same types of things (and much more) with objects and show just how cool the DataSet is. Still, I do agree that the DataSet is not suitable for a complex domain model. Custom objects always win out there (but again, they must cache state in the same way that the dataset does...it is just a pain to write all the extram code).

Jesse Ezell

# re: 'You want a Dataset with that DAL, sir?' 'No, thank you.'@ Tuesday, May 13, 2003 2:42 AM

Jesse is right. The only way to prevent having an inconsistent state in your copy of the data is to lock it after you read it, let the user change it, and then commit it. If not, you'll always have to deal with an optimistic concurrency conflict in your application, regardless if you are using DataSets or any other persistence layer.

The persistence layers you mention can solve the issue if they are the only AppDomain accessing the database. If you have two AppDomains accessing the same database, you have the same problem. If you have two processes, or a server farm, you'll have the same problem. If you are using only one AppDomain to access your database, then you could tell that to the persistence layer so it caches it more agressively, but it will be a deployment-time optimization. You will still have to deal with optimistic concurrency issues in you code, because you'll will want it to scale to multiple appdomains...



Andres Aguiar

# re: 'You want a Dataset with that DAL, sir?' 'No, thank you.'@ Tuesday, May 13, 2003 2:53 AM

Caching in ANY form is an issue, and you always have to take into account that when you read data on a given time T, the microsecond after that it can be changed by another thread. Indeed, if you do not want that, you should lock the row, not helping performance.

DataSets however give you the feeling they take care of this, which they don't (in full). The problem is that they make it easier for the developer to work in a stateful way with data cached in memory than f.e. the DataReader approach does. If you need to update a userrow f.e. you can simply execute an Update statement on the database, or update a cached userrow in a dataset, then persist it. THe latter will probably not work well in an environment with heavy changing data.

Andres: your example of the webfarm and the multiple appdomains is a good one.

I'm not against the usage of a dataset as a datacontainer between tiers, however if you use it as an equivalent of Fowlers UnitOfWork, it gets a little tricky.

Frans Bouma

# re: 'You want a Dataset with that DAL, sir?' 'No, thank you.'@ Tuesday, May 13, 2003 6:23 AM

I found working with a timestamp column very helpful. See "Distributed Concepts and Design, Addison Wesley". A must have book for enterprise developers.

Good post Frans, to bad lots of people (even on dotnetweblogs) seem to be indoctrinated by MS's marketing strategy and refuse to dig in on this issue.

Paul Gielens

# re: 'You want a Dataset with that DAL, sir?' 'No, thank you.'@ Tuesday, May 13, 2003 8:05 AM

If you are trying to use DataSets as a global caching mechanism then you are right, they are not good for it.

If you use them as a container for Business Entities instances, for example an Order, when you retrieve one, change it offline, and then persist it, then they work great.

I don't want to just execute an update statement to persist the data because I won't have optimistic concurrency, I'll have to build it myself.

They are also good when you want to cache mostly read-only data. If you have an ASP.NET app that uses DataReaders for filling grids, you'll have better performance than using a DataSet. If you then want to cache that data in a middle tier, or in the asp.net tier itself, then you'll have to change your app.

If you bind to a dataset, you'll have worse performance in the web server (the same in the database server), but you can add caching for read only data very easily, and that will imply a great improvement in the overall performance/scalability of the application.

Andres Aguiar

# re: Stored Procedures vs. Dynamic Queries.@ Tuesday, May 13, 2003 9:56 PM

Nice research. I guess now I'm still wondering my I shouldn't make the next leap and go with an O/R mapper all the way? A few months ago I would have said no way, but then again I was convinced that sprocs were the way too. So please more enlightening posts like this last one instead of the endless debate on the forums. Thanks.

Paul Wilson

# re: Stored Procedures vs. Dynamic Queries.@ Tuesday, May 13, 2003 10:17 PM

Paul, a MONTH ago I would have said: "Stored procedures are the way to go". However, there are times in life when you face the results of choices you've made, you don't like what you see, you suddenly know you made the wrong decisions. I've to admit I've spend 2 months developing a visual stored procedure designer for my generator just to meet the requirement to first generate stored procedures, and then generate call classes for these stored procedures. These 2 months were a total waste of time, because it is a) undoable to write a decent visual stored procedure designer without forcing the user to write SQL statements, and b) it will result in time-consuming work because the use has to design EVERY SINGLE action he wants to perform on the database in a stored procedure. For CRUD operations, that's easy. But what do you do when you have 3 foreign keys in your table and you want to have several delete stored procedures based on any combination of these foreign keys? That's 6 stored procedures if I do the math correctly :) Not a pleasant sight with a lot of tables.

I think the debates on the forums did help me find another way out of this by going the other way around, which ended up in tiny pieces of code which produce on the fly what is needed. If you set it up in a way that the small statements use factories which produce agnostic objects with db specific code INSIDE them, you have very portable code (just change the factory).

So I won't say the 'endless' debates on the forums are not worth it, I think they are. Every developer thinks on a given point in time they know what's best in a given situation. During debates on forums you learn other peoples views, and they will probably not enlighten you on the spot, but will work through in your work in some way, I'm sure of it (either by strengthen you in your believe you're right, or in a realisation you're wrong so you can change your way of doing things).

If you wa

Frans Bouma

# re: Stored Procedures vs. Dynamic Queries.@ Tuesday, May 13, 2003 10:20 PM

(the comment got clipped)
If you want to write all the logic by hand, there is NO WAY an O/R mapper can help you. O/R mappers, and related generators, are ment to generate common code based on a database scheme / input parameters and using a set of choices which might be the ove rall best. But NO O/R mapper will ever beat a handwritten, handoptimized DAL with stored procedures for every single possible query with a combined calling mechanism which is smart enough not to get data when it shouldn't. Like John Carmack will never b e able to deliver a generic 3D engine which will perform top notch in every single 3D game possible.
<br>

<br>
So, if you are aware of the compromises taken, you can then start looking at the advantages of using a ready-to-roll framework over writing it all by hand and check if the advantages are outweighting the disadvantages related to the compromises taken. W ith a solid O/R mapper or related generator, I'm pretty sure the ready-to-roll framework is well worth it.

Frans Bouma

# re: Stored Procedures vs. Dynamic Queries.@ Tuesday, May 13, 2003 11:36 PM

So are you basically saying your next version will be an O/R mapper instead of a code generator? If not, then my question is still why your code generation approach (but without the sprocs) vs. something like EntityBroker?

Thanks for your time.

Paul Wilson

# re: Stored Procedures vs. Dynamic Queries.@ Tuesday, May 13, 2003 11:47 PM

It will be both. It will generate code which utilizes a common framework, the code generated will be focussed to work with entities and collections of entities (Like 'Customer' and all code to handle the entity customer).

It will also allow you to generate lists, like order + orderdetails, some people like to use. These lists are pre-generated (the code to deliver you the list), can have filters, are typed (its a typed datatable) and can originate from an existing stored procedure (or not). It will also allow you to generate dumb datatable lists, if you want these. This last category can also be generated on the fly, using code and the same dynamic query engine, by the developer.

I generate code, but not all code necessary is generated. A lot is precompiled in an assembly, like all O/R mappers use. The reason I generate code is that I wanted to make life easy for the developer: thus in a gui he designs the usage of the O/R mapper, the O/R mapper is then created for the developer. The developer doesn't have to add a single attribute to work with the code. Also the generator does an extensive analysis of the database schema, so m:n relations are embedded directly into the Entity classes. (So for northwind, you'll get Customer.GetEmployees(), which in fact is an m:n relation via Orders. ).

EntityBroker requires you to write a lot in attributes, I generate this out in code. THere is not that much difference.

Frans Bouma

# re: Stored Procedures vs. Dynamic Queries.@ Wednesday, May 14, 2003 12:13 AM

Hi Frans,

Just out of curiosity, did you run the test with specific stored procedures too, instead of the generic one?

I understand that that wasn't a realistic option in your opinion, but I'm still curious regarding the result.
:-)

Best Regards,
Jimmy
###

Jimmy

# re: Stored Procedures vs. Dynamic Queries.@ Wednesday, May 14, 2003 12:21 AM

:) No I haven't. I did however profile the difference in speed between a stored procedure with optional parameters and a stored procedure tailored to one single filterset and the optional parameter one was much slower, since the optimizer can't optimize away a filter on a column even when the parameter is optional.

I have to test it extensively to say anything about the speed between dedicated stored procedures and dynamic queries (thus in the case of 3 foreign keys which are a possible filter, you have to write 6 stored procedures and then select one of them to run the query of that moment), but I don't think they'll be much faster than the dynamic queries (the dynamic queries have to be build up each time which takes some time, network speed can be a factor when a high amount of queries is executed), based on f.e. the books online documentation of SqlServer 2000.

Hand-optimized stuff is always the prefered way of doing things when performance is absolutely a matter of life and death. So is assembler. Neither one of them is recommeded in day to day applications due to the hard way of maintain such code.

Frans Bouma

# re: Stored Procedures vs. Dynamic Queries.@ Wednesday, May 14, 2003 12:27 AM

I got an error so I try again...

It would also be interesting to see how dynamic SQL in a stored procedure would perform compared to the other options.

Best Regards,
Jimmy
###

Jimmy

# re: Stored Procedures vs. Dynamic Queries.@ Wednesday, May 14, 2003 1:27 AM

Frans,

If I understand correctly, your dynamic query generator will run against JET -- which is used a lot in shared hosting environments. (Not everyone wants to pay for SQL Server.)

That would be very nice indeed...

Paul Schaeflein

# re: Stored Procedures vs. Dynamic Queries.@ Wednesday, May 14, 2003 1:53 AM

Paul Schaeflein,

I do understand that shared hosting environments sometimes offer access database support as the only support for databases, however I firmly believe that access is not the way to go for n-tier applications. Access is a single-user toolkit for applications which need a (small)database. Other applications can better target databases which are ment to perform in a multi-user environment. If they do not want to pay for a database, MSDE is there to the rescue.

The generator works with database drivers and database specific generators. In theory it's possible to write a driver for JET and thus a query generator for JET, however that's not planned. (It will not be that much work however).

Frans Bouma

# Frans Bouma's blog@ Wednesday, May 14, 2003 4:24 AM

Frans Bouma's blog

TrackBack

# Andres Aguiar's Weblog@ Wednesday, May 14, 2003 4:24 AM

Andres Aguiar's Weblog

TrackBack

# re: Stored Procedures vs. Dynamic Queries.@ Wednesday, May 14, 2003 8:55 AM

Also, what are the trade-offs in a large system. For example, one with 200+ tables (or how about one with 1000+ tables), 3 Sprocs (INSERT, UPDATE, DELETE) per table plus 1 more Sproc for each type of search per table. At this point, with at lesat 1000 Sprocs, even in the optimized world of specialized sprocs, how many would actually be kept in memory, as compared to how many would be dropped out and require a recompile each time they are used? Just some food for thought...

JimS

# re: Stored Procedures vs. Dynamic Queries.@ Wednesday, May 14, 2003 7:39 PM

I'm not proposing to agree or disagree with your premise (I rather suspect that I'd have a foot in both camps, in fact) but I did wonder about the validity of the benchmarks.

Firstly, did you try using the "WITH RECOMPILE" option when you created your stored proc? As you'll probably know already, this gets round (at a cost per execution) the inappropriate query plan problem. In fact, with optional search criteria that might influence the query plan I'd say it was essential.

Secondly, to echo a previous comment, did you try building the specific SQL string required in the stored proc and using "exec"? I would expect similar response times to dynamic SQL since the query plan must now be generated fo each execution.

A third option might be to use a 'master' stored proc to accept the optional parameters and then pass control to 'sub' procedures that contain queries that are not hampered by the optionality. Of course, we're starting to run the risk of substantial duplication at that point, with increased maintenance costs becoming a potential downstream problem.

I think I might be inclined towards the dynamic route in order to be able to exercise better control over the duplication issues.

Assuming execution times can be equalised, the remaining issue may be in the area of access control. There may be benefits to be had from restricting table access to stored procedures, perhaps because of referential integrity concerns.

Mike Woodhouse

# re: Stored Procedures vs. Dynamic Queries.@ Wednesday, May 14, 2003 7:50 PM

Mike:
The execution plan is the same with every input, this is because the stored procedure uses the same code. Check the stored procedure in the linked blog. Specifying 'With Recompile' would slow down the execution without any benefit.

Building strings INSIDE a stored procedure is even slower and not an option. T-SQL is not ment to be doing string contatenations, and it also kills the caching of execution plans, because you can't re-use execution plans based on parameters (allthough sqlserver tries to replace hardcoded values with parameters).

The Dynamic queries ARE parameterized. Therefor the queries will re-use execution plans (there are 6 execution plans possible with the test done: 3 foreign keys, 6 combinations). The dynamic queries were not created using the concatenation of the values in the query, but using parameters.

Delegating the call to other stored procedures inside a stored procedure wouldn't have helped either, I can do that selection in C# too, avoiding slower T-SQL execution code. The point was: is it worth it to do this:

1) create 6 stored procedures (which are fast)
2) create 1 stored procedure with optional parameters (which is slow(er)
3) create dynamic queries with parameters (thus in the end 6 of them).

1) is probably one of the fastest, but requires 6 stored procs in our situation for that particular table. Not that nice. 2) is slower than 3) so 3) is IMHO the best choice.

About access control: I read that more and more, but it's hot air. I'll try to explain why later on.

Frans Bouma

# re: Serious ASP.NET Editor flaw lives on in VS.NET 2003@ Thursday, May 15, 2003 12:06 AM

Maybe as an interim solution they could fix the problem in the upcoming release of the Web Matrix.

Ron Green

# re: Stored Procedures vs. Dynamic Queries.@ Thursday, May 15, 2003 1:47 AM

Good work! I just posted my thoughts to my blog (linked to my name above) rather than spilling them here...

Richard Tallent

# Frans Bouma's blog@ Thursday, May 15, 2003 5:19 AM

Frans Bouma's blog

TrackBack

# Frans Bouma's blog@ Thursday, May 15, 2003 6:01 AM

Frans Bouma's blog

TrackBack

# re: VS.NET 2003 isn't all that bad (sort of)@ Saturday, May 17, 2003 9:33 PM

But still no refactorings? No "extract method", "rename method", "move method", Renaming a variable in one place and renaming them everywhere in it's scope automatically? Those are things I can't hardly live without since I've been using Eclipse for Java developement. And *might* even be a reason why I keep using Java although I'd prefer C# as a language.

Zef Hemel

# re: VS.NET 2003 isn't all that bad (sort of)@ Saturday, May 17, 2003 9:40 PM

No refactoring functionality. I heared C# builder of Borland (to be released this summer) will have refactoring-functionality. Refactoring is something that is not considered 'useful' in the MS community, since it is a tool necessary by people who think while they write code (like in the eXtreme Programming world). So "if you design your software well enough, you don't need refactoring". I agreed with that for a lot of years. At the moment I'm doing a lot of designing while I write the code, and refactoring would help a lot in this case.

Frans Bouma

# re: #define debugging testing@ Sunday, May 18, 2003 12:42 AM

http://dotnetweblogs.com/sbchatterjee/posts/7189.aspx

SBC

# re: #define debugging testing@ Sunday, May 18, 2003 1:14 AM

I do agree with what you write, and I maybe confusing bugs (they are all bugs after all!), but I think I can solve 99% of all bugs just tracing things. That's for my personal case.

I also wanted to point that in real world (at least the world I live in ;-) scenario, average developers spend way too much time in the debugger than they should, and this just costs a whole lot of money to projects, in terms of productivity.

Simon Mourier

# re: #define debugging testing@ Sunday, May 18, 2003 1:21 AM

Tracing can be a tool to find code error bugs, why not? It shows you the state on a given line and you can do that with printf's or looking at a locals window in a debugger ;)

I agree that way too many developers simply do not know what debugging is really about. If a method deep down the call chain is probably not good, they do not know that because they never tested the methods calling the code either on pre-/post conditions, fire up a debugger, break at the start of the call chain and step ahead till doomsday not knowing where to look for because they do not use their head.

Frans Bouma

# SBC DotNet Weblog@ Sunday, May 18, 2003 7:29 AM

SBC DotNet Weblog

TrackBack

# re: ISV's: do NOT upgrade to Visual Studio.NET 2003!@ Tuesday, May 20, 2003 1:18 AM

Very bad advice IMO. Use VS.NET 2003. The amount of time you save will be more than enough to deal with any of these issues.

Here is the classic Early Adopters article about framework versioning:

http://www.3leaf.com/default/articles/ea/SBS.aspx

.NET was designed to support versioning, the solution is not ignoring versioning, but learning how to properly use it.

Jesse Ezell

# re: ISV's: do NOT upgrade to Visual Studio.NET 2003!@ Tuesday, May 20, 2003 1:24 AM

Then please help me in this situation, since I can't think of any real solution. How am I going to FORCE versioning onto developers using visual studio.net 2002? I can only tell them to use the assemblyBinding tags in their own config files otherwise it WILL NOT WORK.

If this visualstudio.net 2002 user is not developing an executable but also a library (based on your library), he TOO has to tell HIS customers to include the assemblyBinding tags otherwise the code will NOT WORK.

All versioning is focussed on UPWARDS compatibility. However no-one is talking about .NET 1.1 assemblies which are used in .NET 1.0 environments.

Frans Bouma

# re: ISV's: do NOT upgrade to Visual Studio.NET 2003!@ Tuesday, May 20, 2003 1:47 AM

*dang* wrong quote :)
[quote]
Adopter:

This works both ways. If you’ve built a v1.1 component, there’s nothing to prevent a developer from referencing it from a v1.0 application. In this case, your v1.1 component finds itself running on the v1.0 Framework. This situation is more dangerous than the reverse, as there’s the potential that your component uses something that doesn’t even exist in v1.0. If this is the case, expect a “missing method” exception.
[/quote]
I tested this and this is not true (see error listed in the blog). My 1.1 assembly is not run against the .NET 1.0 install on the machine even though the .exe file is compiled on that same machine using csc v1.0.3705.288, thus .NET 1.0.

Frans Bouma

# re: ISV's: do NOT upgrade to Visual Studio.NET 2003!@ Tuesday, May 20, 2003 1:57 AM

If you have both frameworks installed, can you compile using the command line in the 1.0 environment?

Paul Schaeflein

# re: ISV's: do NOT upgrade to Visual Studio.NET 2003!@ Tuesday, May 20, 2003 2:04 AM

Yes you can, you can manually compile against whatever framework you want. An ISV can opt for that route as well, however this can be cumbersome also when the set of assemblies have dependencies etc so you have to write NAnt files to build manually. It's not an easy situation, and I think not a lot of ISV's have thought about this, I for one hadn't until I tested it this morning and discovered I made a mistake upgrading to VS.NET 2003, even if the editor is much better and very helpful.

Frans Bouma

# re: ISV's: do NOT upgrade to Visual Studio.NET 2003!@ Tuesday, May 20, 2003 2:21 AM

At CodeProject there's a tool converting projects and solutions from VS.NET 7.0 to VS.NET 7.1 and vice versa:

http://www.codeproject.com/useritems/vsconvert.asp

Thomas Freudenberg

# re: ISV's: do NOT upgrade to Visual Studio.NET 2003!@ Tuesday, May 20, 2003 2:24 AM

In VS.NET 2003 IDE, you can choose which framework to compile against.

Project Properties -> Build -> Supported Runtimes -> Change

Jack

# re: ISV's: do NOT upgrade to Visual Studio.NET 2003!@ Tuesday, May 20, 2003 2:29 AM

[quote]
In VS.NET 2003 IDE, you can choose which framework to compile against.

Project Properties -> Build -> Supported Runtimes -> Change
[/quote]
Only for .exe projects, and also this adds assemblyBinding tags to the .config file of the .exe project. You can't set this information on f.e. C# class library projects. VS.NET is also not compiling with .NET 1.0 if you select it in that dialog, it will compile using .NET 1.1, it will only change your app.config file so the compiled .exe uses .NET 1.0 because all referenced system assemblies are redirected to .NET 1.0 versions. This works ok.

THomas: thanks, can be a life saver in supporting multi-platform applications.

Frans Bouma

# re: 'You want a Dataset with that DAL, sir?' 'No, thank you.'@ Tuesday, May 20, 2003 3:29 AM

Great article! Thank you! And thank you for your answer on the newsgroup.

Sasha

# re: ISV's: do NOT upgrade to Visual Studio.NET 2003!@ Tuesday, May 20, 2003 4:33 AM

again, I'm missing something here. .NET 1.0 is to DirectX 8.0 as .NET 1.1 is to DirectX 9.0. Get the drift? Just make the change and people will follow and soon enough no one will care about .NET 1.0, as they will all WANT to have 1.1 installed and running (and this includes those developers 'stuck' in VS.NET 2002 land)...

JimS

# re: ISV's: do NOT upgrade to Visual Studio.NET 2003!@ Tuesday, May 20, 2003 5:17 AM

Oh yeah, great selling argument: "You can use this software only with visual studio.net 2003. If you have still visual studio.net 2002, please upgrade.". :) I don't think that's gonna work.

Frans Bouma

# re: ISV's: do NOT upgrade to Visual Studio.NET 2003!@ Tuesday, May 20, 2003 6:19 AM

Frans: What about using a third-party IDE, such as SharpDevelop or C# Builder, to compile your release build?

Phil Weber

# re: ISV's: do NOT upgrade to Visual Studio.NET 2003!@ Tuesday, May 20, 2003 8:01 AM

This is horendous advice. .NET fully supports Sxs versioning and assemblies. You need to figure out how to use it properly. See the Early & Adopter article, read about publisher policy files, etc but *don't* write riduclous stuff like "ISV'sL do NOT upgrate to Visual Studio .NET 2003!" Not only does it look bad for you but it looks bad for this site (of which many .NET people have been pointing out how much totally incorrect and bad advice is given out daily).

Sam Gentile

# re: ISV's: do NOT upgrade to Visual Studio.NET 2003!@ Tuesday, May 20, 2003 8:08 AM

You can’t **compile** against either framework version, but that you can use the <supportedRuntime> and/or <bindingRedirect> elements to run in either environment, assuming you don’t have dependencies. When we say compile against X, what we are really saying is that the compiler stamps the X version in the assembly metadata for the referenced version, which is the one the CLR tries to load unless redirected in the config files. Any code compiled in 2003 will target by default 1.1, but can be redirected using the configuration files. If you want to redirect to 1.1 from 1.0, you use the <supportedRuntime> element. And, if you want to go from 1.1 to 1.0, you use a slew of <bindingRedirect> elements. All of the VS.NET 2003 UI (C# and VB) to target runtimes creates the config files, but still stamps 1.1 versions in the assembly metadata. So, if you want to target 1.0 with code you wrote in 1.1, just add a section to the app config file. If you're an ISV, you probably have a setup process. Why can't you write this into your setup? Seems to be no big deal to me. What other software platform let's you upgrade without recompiling in a cleaner way?

Stephen Fulcher

# re: ISV's: do NOT upgrade to Visual Studio.NET 2003!@ Tuesday, May 20, 2003 8:11 AM

Sam: the early & adopter article is not mentioning class libraries. If you are selling class libraries, you are falling into this pitfall. It is NOT ridiculus advice, since I *AM* now in this situation and I *CANT* fix it, unless I go back to visual studio.net 2002 or compile the sourcecode by hand for 1.0, or supply the assemblyBinding tags and *HOPE* my customers are going to include it in their config files.

Do you know a solution then? I don't. You can say "It's horendous advice", but what are my options? I'm delivering a set of class assemblies to customers, who can (and probably will) use Visual Studio.NET 2002. I *CANT* compile these with .NET 1.1 because these will give them serious errors, unless they include the assemblyBinding tags in their config files. I've tested this today. I lost a complete day to test what I can do, and didn't find a solution. Therefor I posted this article.

If people are OFFENDED by this, I'm sorry, but it's the clear hard reality for SOME ISV's.

I also do not see why it would look bad for me. I warn other people to think twice before they move to vs.net 2003.

So Sam, as an invitation, please offer me a solution so I can fix this properly. I don't see one. Requiring customers to buy visual studio.NET 2003 is ridiculus in itself, and I can't do much more. A customer with solely visual studio.net 2002 is not focussed to include redirects for .net 1.0, because he never had to. *THATS* the issue. Who is paying the bill for all the supporthours my people have to give customers because they can't run the code they bought? Should I do something to my code to make this easier? If I can, please tell me. I don't know what.

Frans Bouma

# re: ISV's: do NOT upgrade to Visual Studio.NET 2003!@ Tuesday, May 20, 2003 8:12 AM

when I said "this site", I meant "dotnetweblogs as exhibited by the main feed" fyi

Sam Gentile

# re: ISV's: do NOT upgrade to Visual Studio.NET 2003!@ Tuesday, May 20, 2003 8:18 AM

Stephen: if I was selling solely a .exe, it wouldn't have been a problem. The problem is with the class libraries. I can't supply them with a .config file (I wish I could).

It would have been really great if a class library compiled with vs.net 2003 and run by an application build with .net 1.0 would immediately use .net 1.0 assemblies. That would solve the problem. However this is NOT the case. Of course a customer can add the assemblyBinding tags, it's the solution that worked, however a customer has to add them. I didn't KNOW that. It's not mentioned anywhere that you have to add these tags to a .net 1.0 (!) application's .config file to make its class libraries (which are probably compiled with 1.1) use .NET 1.0 assemblies.

Because this is extra support trouble, extra trouble in codebases, it's wiser to keep the code in vs.net 2002, because this will keep you out of the trouble. I predict this issue will cause trouble for some ISV's. Now everyone is selling 1.0 versions, but this will change.

Frans Bouma

# re: ISV's: do NOT upgrade to Visual Studio.NET 2003!@ Tuesday, May 20, 2003 8:19 AM

I am not going to do this with you. While I appreciate your fustration, bloggers here need to learn *not* to make grand denouncements of something. You didn't say "some". You said "ISVS: do NOT upgrade." So all ISVs should not upgrade? Surely *most* ISVs are not exhibiting this problem. Having a blog that is public conveys a responsibility for being accurate as well as posting content free of rants or grand pro/denoucnements. You get the lecture today because there is just so much of this going on in general on this site, and prominent .NET people and bloggers are starting to complain. 'Nuff Said.

Sam Gentile

# re: ISV's: do NOT upgrade to Visual Studio.NET 2003!@ Tuesday, May 20, 2003 8:31 AM

If some 'prominent' .NET people have complaints about my blog let them contact me. I think that's the obvious way to do it. I haven't received *one* complaint besides some in these reactions here.

It's not just frustration, Sam. It's cold hard cash I'm loosing here, and no-one is paying it back because I made the decision to move to visual studio.net 2003 and I didn't know any better. If I can help others with a warning it would be great so others won't loose money over an obvious upgrade.

If I re-read the reactions on this blog, I see some good tips and some "this is bad advice"-replies. What's the problem? Is it BAD to tell the world Microsoft scr*ws developers over with their hardwiring platform targets in their IDE's? Apparantly. Good to know, so I can keep the blogs down to cheerio's for Microsoft's good deeds while keeping my mouth shut about their not so good deeds.

Yes, I'm offended now. I sincerely tried to fix this myself this day, I can't. Microsoft doesn't help me, I hope I helped some ISV's out there today so they make the right decision. If that's against the will of some 'prominent' .NET people, please let them contact me and perhaps they can HELP me with this.

I'm more than willing to type a long essay about every detail how to fix this, so I can say: "ISV's: it's safe to upgrade to visual studio.net 2003, read how".

Frans Bouma

# re: ISV's: do NOT upgrade to Visual Studio.NET 2003!@ Tuesday, May 20, 2003 8:59 AM

Last post from me on this. Apparently, you still don't get the difference on "some" versus "all" and "giving good advice" versus saysing "ISVS: Do NOT." Do I have to spell this out any more clearer? I checked every word of what I wrote with Scott, and spoke to him and he was fine with it. Complaints is refering to not just *this* site but the high number of incorrect .NET information that shows up on the *dotnetweblogs main* feed from a number of blogs on dotnetwegblogs. Scott and I recieve complaints on it. I gave you good advice on how you could have blogged it and how to make a blog successful. You chose to ignore everything I wrote. It's your choice. This is all I am going to say on this.

Sam Gentile

# Loosely Coupled@ Tuesday, May 20, 2003 9:25 AM

Loosely Coupled

TrackBack

# Frans Bouma's blog@ Tuesday, May 20, 2003 9:25 AM

Frans Bouma's blog

TrackBack

# Frans Bouma's blog@ Tuesday, May 20, 2003 9:25 AM

Frans Bouma's blog

TrackBack

# Robert McLaws@ Tuesday, May 20, 2003 9:25 AM

Robert McLaws

TrackBack

# Robert McLaws@ Tuesday, May 20, 2003 9:25 AM

Robert McLaws

TrackBack

# Robert McLaws@ Tuesday, May 20, 2003 9:25 AM

Robert McLaws

TrackBack

# Robert McLaws - BoyWonder.NET@ Tuesday, May 20, 2003 9:25 AM

Robert McLaws - BoyWonder.NET

TrackBack

# Robert McLaws - BoyWonder.NET@ Tuesday, May 20, 2003 9:25 AM

Robert McLaws - BoyWonder.NET

TrackBack

# re: ISV's: do NOT upgrade to Visual Studio.NET 2003!@ Tuesday, May 20, 2003 11:52 AM

I have been stuck having to compile my NUnitAddin project with VS.NET 2002 to ensure compatablilty with both. Yes I might be able to add redirects to devenv.exe.config but I don't think users would be very impressed. I have heard it is possible to compile against the 1.0 assemblies in VS.NET 2003. It would just take a while to manually change them all. I've just written a snippit of code to change all assemblies in a solution to be the 1.0 versions. If you've got NUnitAddin installed you can use 'Test With... VS.NET' on the following method. Put this code in the solution you wish to convert...

using System;
using System.IO;
using System.Reflection;
using System.Diagnostics;
using EnvDTE;
using Microsoft.Office.Core;
using VSLangProj;

public class SolutionConvert
{
public static _DTE DTE
{
get { return (_DTE)AppDomain.CurrentDomain.GetData("DTE"); }
}

public void BuildWith_v1_0_3705()
{
foreach(Project project in DTE.Solution)
{
VSProject proj = project.Object as VSProject;
foreach(Reference reference in proj.References)
{
string assemblyPath = reference.Path;
string assemblyFileName = Path.GetFileName(assemblyPath);
string frameworkDirectory = Path.GetDirectoryName(assemblyPath);
string frameworkVersion = Path.GetFileName(frameworkDirectory);

string newFrameworkVersion = "v1.0.3705";
string newFrameworkDirectory = Path.Combine(Path.GetDirectoryName(frameworkDirectory), newFrameworkVersion);
string newAssemblyPath = Path.Combine(newFrameworkDirectory, assemblyFileName);

if(frameworkVersion != newFrameworkVersion && File.Exists(newAssemblyPath))
{
Debug.WriteLine(assemblyPath + " -> " + newAssemblyPath);
reference.Remove();
proj.

Jamie Cansdale

# re: ISV's: do NOT upgrade to Visual Studio.NET 2003!@ Tuesday, May 20, 2003 11:53 AM

.References.Add(newAssemblyPath);
}
else
{
Debug.WriteLine(assemblyPath);
}
}
}
}
}

Jamie Cansdale

# re: ISV's: do NOT upgrade to Visual Studio.NET 2003!@ Tuesday, May 20, 2003 4:22 PM

First, it's pretty easy to create separate VS 2002 and VS 2003 project files that point at the same source. Then you can work in VS 2003, and do your final build in 2002 (or you can set up a batch/makefile to do a command line compile).

Also, if you build an assembly from VS 2003, you can reference that assembly from a VS 2002 application just fine. You do not need binding redirects or policy files in this case. These come into play if you have a strong named component, and you want to replace it with a newer version (and you want everything redirected to the newer one).

Scott Swigart

# re: ISV's: do NOT upgrade to Visual Studio.NET 2003!@ Tuesday, May 20, 2003 5:38 PM

Or, you can maintain 2 downloads and EDUCATE your developers on which one to use.....

Robert McLaws

# re: ISV's: do NOT upgrade to Visual Studio.NET 2003!@ Tuesday, May 20, 2003 6:32 PM

Scott Swigart: did you try it? Of course you can reference it from vs.net 2002. It even compiles ok. It starts up even, but when you call a method in a class library build with vs.net 2003 from a .NET 1.0 application, AND that class library uses an assembly of .NET to do something (in short: something useful), it will crash with an exception that it can't load the right assembly (the 1.1 version) so your call will not succeed. I tried it, it fails.

Robert: maintaining 2 versions is nice, but what if I upgrade my own class library? Then I have to maintain 4 versions. Perhaps even 6 after another upgrade. I'll look into this, it might be the only solution which will not be a burden for my customers, if I implement it right in my generator.

Frans Bouma

# Frans Bouma's blog@ Wednesday, May 21, 2003 4:27 PM

Frans Bouma's blog

TrackBack

# Loosely Coupled@ Wednesday, May 21, 2003 4:27 PM

Loosely Coupled

TrackBack

# re: Microsoft gets Database Performance crown back!@ Thursday, May 22, 2003 8:17 AM

I used to work for a software vendor as an evangelist and we were primarily a microsoft shop. I can't tell you how many times I had to deal with anti-microsoft/pro-oracle battles. after a while i got pretty good at quoting statistics that dispelled a great deal of it. i think most of it has to do with good marketing on oracle's part.

slowly the myth is getting displaced.

-Mathew

Mathew Nolton

# re: "Framework-Hell"-solution is here: ISV's can upgrade to VS.NET 2003 without pain.@ Thursday, May 22, 2003 7:29 PM

Thanks for the explanation. Would it be possible/easy to write a VS add-in that raises warnings at compile time of usage of a framework assembly of a higher version than x (x being configurable in the add-in). Even if it is indirect (your project referencing a third party assembly which references etc...)?

This would be really usefull.

Teun Duynstee

# re: "Framework-Hell"-solution is here: ISV's can upgrade to VS.NET 2003 without pain.@ Thursday, May 22, 2003 7:34 PM

It definitly would be possible, you have to walk reference chains using reflection, but how to implement it as a pre-compile add-in... I really wouldn't know :)

Frans Bouma

# re: "Framework-Hell"-solution is here: ISV's can upgrade to VS.NET 2003 without pain.@ Thursday, May 22, 2003 9:32 PM

Why not just set the supported runtimes in the project properties dialog.

Also once you have changed the references manually to 1.0 and then manually back to 1.1, the projects will revert to 1.0 on compile. You are stuck with 1.0!

Victor Lindesay

# re: "Framework-Hell"-solution is here: ISV's can upgrade to VS.NET 2003 without pain.@ Thursday, May 22, 2003 9:36 PM

Victor: you can't set that setting in class library projects. Try it, the setting is not there. (The setting is only available on .exe projects which will generate redirect tags to 1.0 in the .config file, no compile against 1.0 is done in VS.NET 2003 unless you hard-reference to 1.0 assemblies.

Frans Bouma

# re: Concurrency Control Methods. Is there a silver bullet?@ Friday, May 23, 2003 11:35 PM

Interesting...! I have to admit I usually say "Don't use functionality locking (your words) except when you really have too!" and that because of runtime efficiency. But this was a refreshing viewpoint!

To see it your way, how do you tune the solution so that the second user isn't kept from doing what he wants too, for longer time than absolutely necessary? I usually use a custom lock table for this and I use a time interval for when the lock isn't valid anymore and that way I deal with ctrl-alt-del, for example. Do you have a better solution to this?

Best Regards,
Jimmy
###

Jimmy Nilsson

# re: Concurrency Control Methods. Is there a silver bullet?@ Friday, May 23, 2003 11:50 PM

Interesting concept Frans. I see two places you need to detail out before this is realistically feasable.

The first thing you need to detail out is the 'lazy' user who will simply lock out others for long periods of time.

For example, say Joe selects the row that Jack wishes to modify first, but now Joe either goes for a cup of coffee or out to lunch, or gets called away for a dire emergency or just plain forgets to release the row for Jack to be able to use. Do we simply lock out Jack until somebody gives Joe a much needed kick in the butt? While software which tosses away a fraction of the work done is not a good thing, an even worse thing is software which slowly grinds work to a halt.

The second is scaling. Webservices are not needed in small scale systems. You can accomplish the exact same functionality in a simple two tier setup, avoiding all the inefficiency webservices would introduce. But in large scale systems, don't lose sight of reality. Yes, webservices work great, but now you also introduce physical distance also.

Sure, Joe could do the work Jack is and avoid duplication. Except Joe works in the corporate HQ in NYC. Joe is employed in HR and wants to alter John's home address so his next paycheck reaches him on time. Jack however, is John's manager and wishes to add change John's work extension ASAP because he's in sales and the website needs to pick up this change for new customers to reach him.

Now the question becomes who do we piss off first? Do we lose potential sales because a new customer can't reach our sales rep? Do we piss off John because his paycheck arrives late? Maybe we piss off Joe because we've now doubled his workload. Or maybe Jack because Joe left John's row locked while he left for lunch at noon - except it is 9am where Jack is.

And all because our 'more efficient' system won't allow two users to update two separate fields from the same row in our empl

Dave

# re: Concurrency Control Methods. Is there a silver bullet?@ Friday, May 23, 2003 11:51 PM

It depends on your application. If you are using a webapplication frontend, you're stuck in the request-response paradigm, so there is no other way then to lock using the mechanism you describe (which is commonly used, f.e. in CMS-es).

Another scheme can be where you still have the lock-table where you store locks on functionality, but a service which manages the locks and communicates with clients bi-directionally. Clients will notify the service that they're freeing a lock and the service can then notify another client waiting in line to enable the functionality.

But indeed, wmost of the time you are forced to implement a time-period to the lock on the functionality as well. However, if the organization is organized well and the software streamlined as well, it shouldn't be very common that a user tries to start functionality that's locked by another user.

Frans Bouma

# re: Concurrency Control Methods. Is there a silver bullet?@ Friday, May 23, 2003 11:53 PM

Damn... gotta learn to be more to the point! :-)

I wanted to end by asking if my concerns were legit because I do agree.... optimistic/pessimistic locking really doesn't cut it 100% of the time.

Interesting post Frans!

Dave

# re: Concurrency Control Methods. Is there a silver bullet?@ Friday, May 23, 2003 11:54 PM

(My previous comment was targeted to Jimmy)

Interesting thoughts, Dave! How functionality locking is implemented can change from organisation to organisation. I can imagine a boss can overrule a lock on a given set of functionality or an admin can unlock a set of functionality at any given time, making the workflow continue. It is all about keeping the workflow going. If someone stalls it, it has to be tuned, both on the organisational side and on the software side.

Frans Bouma

# re: Concurrency Control Methods. Is there a silver bullet?@ Saturday, May 24, 2003 1:10 AM

Frans, yet again... study the Fitch and Mathers sample. For what I can remember it provides a nice, solid, clean way to stop people from bashing the broker.

public enum Blah {
Pending = 0;
etc

Nice post... the writing style reminded me of your friend Fowler, to the core of the problem in mummy_understandable communicative language ;)

Paul Gielens

# re: Concurrency Control Methods. Is there a silver bullet?@ Saturday, May 24, 2003 2:26 AM

Fitch & Mathers? hmm. Well like I said, it can be done on a lot of ways. I haven't looked into F&M a lot, but if they build in functionality locking, it's a nice real life example. :)

Frans Bouma

# Frans Bouma's blog@ Saturday, May 24, 2003 6:53 AM

Frans Bouma's blog

TrackBack

# mads studentblog@ Saturday, May 24, 2003 6:53 AM

mads studentblog

TrackBack

# Concurrency and Other Data Topics from Frans : IDunno@ Saturday, May 24, 2003 6:53 AM

Concurrency and Other Data Topics from Frans : IDunno

TrackBack

# re: Concurrency Control Methods. Is there a silver bullet?@ Saturday, May 24, 2003 10:24 AM

Great article, Frans! Reminds me of a Bill Vaughn quote - debating concurency resolution strategies is like arguing about where to stack the bodies after the accident, instead of putting up the traffic signals to prevent the accident in the first place.
<br>
Handling concurrency on the front end allows for some big optimization gains at update time, such as batch updates (in the case of editable datagrids, for instance, a user can be editing several rows at a time). My favorite strategy for that is to pass in all the update rows in XML, use OPENXML in a SP to dump them into a temp table, delete the old rows and add the new ones (all in a transaction). The same procedure can just as easily free the row locks when it's done.

Jon Galloway

# re: Why I think some people shouldn't use VSNET 2003.@ Saturday, May 24, 2003 10:47 AM

Frans, I think what you are saying essentially true, but only for Component vendors. If someone is writing a general app, then Visual Studio 2003 is preferable. I've posted some more details on my blog.

Mike Sax

# re: Why I think some people shouldn't use VSNET 2003.@ Saturday, May 24, 2003 7:46 PM

Mike: that's why I'm talking about libraries :). General app developers are also able to target 1.0 in vs.net 2003 by the .config generator in vs.net 2003 which adds redirect tags in the .config file, for .exe projects. :)

Frans Bouma

# re: Farewell, beloved Hungarian Coding.@ Sunday, May 25, 2003 8:42 PM

Don't throw it all away ;-)

While I love to use (more VB-style than hardcore C++) hungarian notation, I completely agree with Microsoft's view on how public stuff should be named. So all my public interfaces look the "Microsoft way", internally I use HN. Nice feature: Parameters are easy to spot inside the code of a method because it doesn't use HN unlike the other local variables.

Roland

Roland Weigelt

# re: Farewell, beloved Hungarian Coding.@ Sunday, May 25, 2003 8:45 PM

That's what I did for an hour of converting interface code (I have already thousands of lines of code of this library with HN, waiting any longer would only be stupid) but it doesn't look right to me. I see your point, however for myself it was harder to get rid of the habit to write HN code when I kept local variables HN style. It's a matter of getting used to I guess. after another hour of refactoring it doesn't hurt my eyes that much anymore. :)

Frans Bouma

# re: Farewell, beloved Hungarian Coding.@ Monday, May 26, 2003 12:35 AM

In the devteam I work in, everybody uses the mixed HN/non-HN approach. Comparing source code of other team members (with HN used internally) with sample code from the Web (no HN at all), I must clearly say that the code without HN is harder to understand (note that this is also valid for code that is not related to our everyday work, otherwise the comparison would be biased). The worst problem is finding the difference between local variables and private data members (if people don't use the "_thisIsPrivate" notation).

There is one huge advantage of HN that I don't see mentioned often in discussions: Intellisense. Typing the first characters and then invoking Intellisense will filter the entries shown in the drop down list very nicely (e.g. "m_" for all private members, "str" for all local strings, or "m_str" for all private string members). I even add a specific prefix for controls on a winform: "c_" (followed by a VB-style lvw for listview, lbl for label etc.).

Roland Weigelt

# re: Farewell, beloved Hungarian Coding.@ Monday, May 26, 2003 12:49 AM

If you want to do it totally correct, you should use this.memberVariable instead of just 'memberVariable'. It's a bit of extra typing, but makes it more readable IMHO (but because I'm now in HN-Rehab I'm not in that phase yet ;))

The intellisense argument is definitely true, in VB and C++ it's a real timesaver, however with the mixed api naming schemes in .NET it gets a bit messy IMHO, also with VS.NET 2003 the most used name is picked first, which saves you even more time.

Your point about the control prefix is a good one, if you look closely at MS' own contradicting documents they mention a prefix for a textbox or button control here and there. I'm not sure what I'll do about that, btnOK is very logical. Just having 'ok' as variable isn't telling me anything.

Also the different typed variables which are very closely related to a single item are now harder to formulate: sometimes you have 2 variables of different types holding the same semantic value in different type formats. You can do that easily with HN, you can't with this caMel/PasCal casing. I do get the feeling though you are forced to think deeper about a name for a variable, which is a good thing IMHO.

Frans Bouma

# re: Farewell, beloved Hungarian Coding.@ Monday, May 26, 2003 2:27 AM

> I had an input parameter 'iOperator'. You can't change that to 'operator' because that's a reserved keyword.

In C# you can escape reserved names with an '@', so you can define your parameter as @operator, and users of your library will see it as operator.

Fernando Tubio

Fernando Tubio

# re: Farewell, beloved Hungarian Coding.@ Monday, May 26, 2003 2:33 AM

hmm ok, didn't knew that, thanks. I think I stick with my new name for operator though. :)

Frans Bouma

# Frans Bouma's blog@ Monday, May 26, 2003 5:14 AM

Frans Bouma's blog

TrackBack

# Chad Osgood's Blog@ Monday, May 26, 2003 5:14 AM

Chad Osgood's Blog

TrackBack

# re: Concurrency Control Methods. Is there a silver bullet?@ Monday, May 26, 2003 7:23 AM

Are you suggesting to have something like pesimistic locking but without really locking the database? Like storing a row in a table that says 'I'm updating Customer #1'?

Andres Aguiar

# re: Concurrency Control Methods. Is there a silver bullet?@ Monday, May 26, 2003 7:33 AM

Yes, you use logic in your application to unlock / lock functionality in your application to perform operations. You can do this in a number of ways, f.e. in a table where you store 'locks on functionality' with a serialized transaction.

It takes some effort, but it pays off, the application will force you to focus on the organisational part of rolling out a software application which is where teh real benefits of software are found.

(similar problem: some developers complain about source control systems that they work against you when more than one developer wants to check out the same file. They forget why 2 or more (!) developers try to work on the same file, why isn't there 1 developer doing that work and they others doing other work so they prevent clashes/merge conflicts and other nasties)

Frans Bouma

# re: Concurrency Control Methods. Is there a silver bullet?@ Monday, May 26, 2003 6:33 PM

Mmm... I don't like it, it's a double edge sword....

What happens if a programmer 'forgets' to check the table? What happens if there is a totally different application that you cannot control that is using the same database?

The only way to implement it safely would be to use database locks, and we all know it won't scale.

I have some ideas, I'll blog on them as soon as I can find some time ;)

Andres Aguiar

# re: Concurrency Control Methods. Is there a silver bullet?@ Monday, May 26, 2003 6:43 PM

If you take into account what can happen when a programmer 'forgets' something he should do, any given example of good technology will fail. I don't see that as an argument. Locking parts of an application's gui or inner works because the current user is not allowed to work with it is not an easy way out, I admit. It's far easier to just let the database figure it out, which will lead to systems which are not that efficient (as I wrote). You don't need database locks. You can write a singleton which manages the 'locks'. RDBMS-es are not using different systems for managing their locks.

Using optimistic locking or similar to prevent concurrency problems is fighting the symptoms of badly designed software. It's better to design it RIGHT so concurrency problems are not an issue. If I might add: every major CMS vendor implements functionality locking, they lock in their guis editable items so other editors can't work on them while an editor is editing these items.

Frans Bouma

# re: Firebird .NET data provider v1.0 released@ Monday, May 26, 2003 10:51 PM

have you had a chance to work with firebird? With ms sqlserver becoming expensive ( 20K/cpu in a production environment? ), it provides an opportunity for a strong but much less expensive rdbms ( e.g. stronger than access and mysql ) to gain popularity.

i read the comments on the firebird site about the small footprint and fast transactions. i think i will have to download it and see what this new version is all about.

-Mathew Nolton

Mathew Nolton

# re: Firebird .NET data provider v1.0 released@ Monday, May 26, 2003 10:57 PM

Not with a recent version, I used Interbase a few years back but I don't think it's wise to compare that with todays firebird version. Like PostgreSQL, Firebird packs all the features you want (and more, it has iirc MVCC, which SqlServer lacks) from a database. I don't have the time at the moment, perhaps this weekend, to give it a testdrive. :(

If you've given it a testdrive, can you post/blog some thoughts about your experiences with Firebird? Thanks :) (so I can see if I should plan some time to dive into Firebird for my next generator toolkit or shouldn't)

Frans Bouma

# re: Firebird .NET data provider v1.0 released@ Tuesday, May 27, 2003 2:13 AM

Hello:

>so I can see if I should plan some time to dive >into Firebird for my next generator toolkit or >shouldn't

Oh!! if you mean to add Firebird support to LLBLGen this could be great!!!

For me Firebird is great, it's really stable and fast, and it has all features i need ( referential integrity, triggers, stored procs, transactions, ... ), really good admin tools, and it's multiplatform and .......... :D





Best regards
Carlos Guzmán Álvarez
Vigo-Spain

Carlos Guzmán Álvarez

# re: Firebird .NET data provider v1.0 released@ Tuesday, May 27, 2003 2:21 AM

Yes I mean support for Firebird in the next release, the O/R mapper variant LLBLGen Pro. I can't assure support via the initial shipment of the first version, but I can add support easily after that via a template/driver-addon update. Consider it on the 'essential items todo' list :)

Frans Bouma

# re: Don't try to re-invent the browser, please.@ Tuesday, May 27, 2003 3:07 AM

Did you see my blog on Serialized UIs? http://dotnetweblogs.com/donxml/posts/7441.aspx Have you read up on Avalon in Longhorn? Sure sounds like your vision is the same as mine, except the definition of a 'browser'. The line between WinForms and WebForms is being blurred by advancements in Longhorn.

DonXML

DonXML

# re: Don't try to re-invent the browser, please.@ Tuesday, May 27, 2003 3:18 AM

The 'browser' as an application should go away, iexplorer.exe should not live anymore. That's the idea I was talking about. This will not be possible with a flip of a switch (unfortunately ;) ), but if you ask me, I really do not see the relevance in the future for 2 'forms' namespaces, there is one gui: the desktop (or handheld or whatever).

I hadn't read your blog about serialized guis nor read about avalon (I only saw some screenshots on the windows supersite). What triggered me to write this blog was your remarks on how it should be rendering XML using namespace engines and the like. All neat, but that's not the problem, because with another rendercontrol it can be embedded in IE now. The concept should change, not which rendering engine should be used. (because to me XML is not about visualization, but about datastorage following a structured definition). But perhaps I'm missing something essential which will cause that what I think should be done will never happen :)

Frans Bouma

# re: Don't try to re-invent the browser, please.@ Tuesday, May 27, 2003 3:32 AM

We are on the same page, but our definitions aren't exactly the same. This is a new world, and until we get a standard definitions behind the ideas, that's bound to happen.

DonXML

# re: Don't try to re-invent the browser, please.@ Tuesday, May 27, 2003 3:35 AM

Hmm I think you're right.

I hope that the W3C isn't involved in next-gen webapplication gui definition standards though.

Frans Bouma

# re: Don't try to re-invent the browser, please.@ Tuesday, May 27, 2003 3:56 AM

What the hell are you talking about? WinForms and HTML share something in common - developers must control the positioning of various UI elements, i.e. controls. IE *does* have them - the HTML Common Controls. You can even use them in your own apps...including WinForms. IE6 on XP with Visual Styles enabled does, however, bind to CC6, in which case the controls are actually the Windows Common Controls.

Why did GUIs starting hosting in web browsers like IE and Mozilla - because graphics representation has long-since evolved and the methodologies to do them really hasn't. IE already takes care of all the rendering with very little work by a developer to re-invent the wheel to display nice-looking GUIs. Comparing the easy layout capabilities of HTML to Curses is a joke! Sure there are problems when using HTML for your only GUI (InstallShield Developer and Microsoft Money come to mind) but those are overcome by writing simple ActiveX components and implementing your own hosting interfaces, which is still a *lot* easier than rewriting everything like that yourself.

The web is an evolving thing and if browsers don't evolve with it, then *we'll* be the ones re-inventing technologies. Isn't it better than a single organization does it, tests it, supports it, and basically implements a "standard" that everyone uses?

Heath

# re: Don't try to re-invent the browser, please.@ Tuesday, May 27, 2003 4:00 AM

This sounds eerily similar to the Java-applet view of the future we heard in the mid-90's.

BTJ

# re: Don't try to re-invent the browser, please.@ Tuesday, May 27, 2003 4:04 AM

Heath: yeah yeah, but I'm not talking about the LOOKS, I'm talking about functionality known for years in f.e. win32 and now winforms which are not possible (or better: are much harder to develop) in HTML if ever possible. I'm not talking about Foo Inc. and their 2 page website with a mailform, I'm talking about webapplications with sophisticated GUI's which are hard to develop in HTML using IE and easy to do in winforms. The main reasons: HTML is markup, not a gui definition language and HTML works disconnected, while it shouldn't.

BTJ: I'm aware of that it sounds familiar :) Java had the disadvantage that the internet was not as connected as it is today: people dialed in via modems, today they have cable or ADSL and are always online, which blurs the separation between apps running elsewhere and locally.

Frans Bouma

# re: Firebird .NET data provider v1.0 released@ Tuesday, May 27, 2003 6:05 AM

Hello:

> Yes I mean support for Firebird in the next > release

:D There any expected date for the release of the next version ??


Best regards
Carlos Guzmán Álvarez
Vigo-Spain

Carlos Guzmán Álvarez

# re: Don't try to re-invent the browser, please.@ Tuesday, May 27, 2003 7:21 AM

Until Microsoft supports or makes an official statement regarding its position on projects like Mono, I would not count on the CLR and .NET to be a viable cross-platform development environment. Remember, the CLR may be an open standard, but the .NET framework is not. There is nothing stopping Microsoft from suing projects like Mono and DotGNU and that is enough to keep me away from thinking about .NET as a solid cross platform solution.

Joshua Hoover

# re: Firebird .NET data provider v1.0 released@ Tuesday, May 27, 2003 7:29 AM

"soon" :) I hope before august.

Frans Bouma

# re: Don't try to re-invent the browser, please.@ Tuesday, May 27, 2003 7:40 AM

See my url, we are on the case!

Kingsley Idehen

# re: Don't try to re-invent the browser, please.@ Tuesday, May 27, 2003 7:46 AM

Kingsley, cool :) I read somewhere the HWND issue is/was a bit of a problem with mono winforms, but if that's been fixed, I think mono will have a decent winforms implementation, which opens up a whole new ballgame :) Good stuff, Kingsley, keep up the good work :)

Frans Bouma

# re: Firebird .NET data provider v1.0 released@ Tuesday, May 27, 2003 8:34 AM

Hello:

Thanks and keep up good work :D





Best regards
Carlos Guzmán Álvarez
Vigo-Spain

Carlos Guzmán Álvarez

# DonXML Blog@ Tuesday, May 27, 2003 11:34 AM

DonXML Blog

TrackBack

# DonXML Blog@ Tuesday, May 27, 2003 11:34 AM

DonXML Blog

TrackBack

# Read/Write Web@ Tuesday, May 27, 2003 11:34 AM

Read/Write Web

TrackBack

# re: Don't try to re-invent the browser, please.@ Tuesday, May 27, 2003 5:57 PM

You got some points but I don't think you could expect to see Winform support "all over" in some time.

If you only target Windows user with the latest Microsoft OS then Winforms is great. If you plan to target other users then web might be the way to go.

Also...the web is no longer meant for stateless applications. You got many ways for implementing persistence in most web application frameworks. However, the applications are much harder to develop on the web.

Viking

# Tim Berners-Lee@ Tuesday, May 27, 2003 9:40 PM

Just for the record, Tim Berners-Lee made the first web browser... not Andreessen!

bruce

# re: Don't try to re-invent the browser, please.@ Tuesday, May 27, 2003 9:49 PM

hmm, in that context, what *is* a browser then? since with gopher you also could traverse hyperlinks (sort of). Berners-lee did indeed invent a tool/format to hyperlink texts, however the concept of the browser as we know it today is not made by Berners-lee afaik, but by Andreessen and his team at NCSA.

Frans Bouma

# About the indenting...@ Tuesday, May 27, 2003 11:01 PM

I think it removes the tabs if you choose to <enter> another line down because a lot of people (me included) dislike lots of whitespace on otherwise empty lines. If you want it to redo them when you move upward that could cause some really funky stuff when you're just cruising the sourcefile looking for something to copy and you see the cursor jumping around to each line's "next logical place to insert stuff" :)

I agree with the rest though, especially the compilation issues.

Jeroen

# re: My wish-list for the next Visual Studio.NET release@ Tuesday, May 27, 2003 11:08 PM

Yeah, the whitespace is indeed a burden. However, the editor knows it should indent when hitting enter, the editor could simply look at the indentation of the line ABOVE the current line (if the current is empty). Ah well... :)

Frans Bouma

# JonGalloway.ToString()@ Wednesday, May 28, 2003 5:51 AM

JonGalloway.ToString()

TrackBack

# re: Don't try to re-invent the browser, please.@ Wednesday, May 28, 2003 5:53 AM

Nope, TBL definitely bulit the first web browser as we think of it today. The team at NCSA just built a better one.

The reason people like myself are crying out for an update to IE is that it still doesn't support the current batch of standards to an acceptable level. It doesn't even support all of HTML yet (the <abbr> tag springs to mind), it's CSS2 support has a distance to go and the sooner they support alpha transparency in PNGs (which was standardised in 1996) the better.

I'm interested in the rendering engine, not the browser. As it is, I use Gecko engine browsers (currently Firebird) and can't really see myself moving back to IE even if its end user functionality (tabs, popup blocking, typeahead find and so on) caught up. It's just too convenient having a browser that I can install on any operating system I care to use.

Simon Willison

# re: My wish-list for the next Visual Studio.NET release@ Wednesday, May 28, 2003 7:28 AM

Your list is great! I'd like to add one minor thing:

Give us an option to either: remove the "Add Task" line from the task list or possibly move the "Add Task" line to the bottom of the task list.

Visual Studio takes up so much screen real estate - the add task line takes up so much room for something that I never use.

DM

# re: My wish-list for the next Visual Studio.NET release@ Wednesday, May 28, 2003 10:24 AM

Re Error harvesting. Long ago I worked on with a PL/1 compiler that attempted to continue after errors. It had to assume what you meant to say instead of the error, and one wrong assumption generated a mass of meaningless errors.

Be careful what you wish for!

David

# re: My wish-list for the next Visual Studio.NET release@ Wednesday, May 28, 2003 8:29 PM

David: heh yeah, I remember those days with the Sun 'CC' compiler when you forgot a ';' all hell broke loose. Fixing that ';' and all errors went away. :) However, what I ment was clearly repetitive errors which can be found but are now skipped. But indeed, we should be careful what to wish for :)

Frans Bouma

# re: Farewell, beloved Hungarian Coding.@ Thursday, May 29, 2003 4:15 AM

I was a strong proponent of using the "this->" convention for C++, but with C#, I don't see the point. There are no free functions, so you are either referencing a member function or a function in another object. So saying this.DoSomething() no longer adds a lot of extra readability/information for me.

I am torn on the notation subject. I don't, and never have, liked Hungarian to annotate the type of variable referenced. But I do like it to indicate purpose. m for member, a for local, in for input parameters, out for output parameters, k for constant, s for static. These add meaning and context to me. Dropping the a for local is not a big deal to me, but when I loose the context of input, output, and members. Then I start to have more of an issue.

I try to work both ways to get myself used to no prefix context. But it does hurt.

Jim Argeropoulos

# re: A quick update on LLBLGen Pro@ Friday, May 30, 2003 5:10 AM

Hi Frans,

I used your previous version on one or two projects and really liked it. One question though....what type of price range was you thinking for your next release?

Or is it too soon to say?

Thanks

John

John

# re: A quick update on LLBLGen Pro@ Friday, May 30, 2003 8:40 AM

Bindable entities by implenting a binding interface upon a business entity... hmm looks farmilair ;)

Frans you thought about entity v.s. value objects? When is an object considered to have an identity and presumable be and entity? Or an object with no identy presumable a value object(depending on the object context?).

Paul Gielens

# re: My wish-list for the next Visual Studio.NET release@ Friday, May 30, 2003 8:49 AM

About the help tab: I find it much easier to use external help. Then I can use Ctrl+Tab to switch between editors and Alt+Tab to switch to the help window and back.

Dan

# re: A quick update on LLBLGen Pro@ Friday, May 30, 2003 8:56 AM

John: around 175 euros incl. VAT for a site license, thus unlimited number of developers can use that license in your company.

Paul: Entities are the elements you focus on when you design an ORM/NIAM model, thus f.e. the tables in your database. The entity classes talk about the same entities as the entities found in the database, they should be the same.

Besides these entities you have views defined over a number of attributes of a collection of entities. These are also supported (typed datatables).

Frans Bouma

# Emitter@ Friday, May 30, 2003 9:03 AM

Emitter

TrackBack

# re: Entity: why do some people who write IT books re-invent definitions?@ Saturday, May 31, 2003 2:06 AM

Evans, Domain Driven Design
@ http://www.domaindrivendesign.org/book/

This is NOT Fowler... I added Fowler as a ref because of his thinking about identity maps. I'm just telling there's a difference between objects that have an identity (entities) and objects that don't (value objects). This makes a BIG difference within domain models and because LLBLGen Pro seems to generate large parts of the domain model as well... Read a few lines in Evans's manuscript and perhaps we'll conclude we are thinking 1:1 but blogging the other way around.

Paul Gielens

# re: Entity: why do some people who write IT books re-invent definitions?@ Saturday, May 31, 2003 2:15 AM

I don't see why people have to be focussed on a difference, of course they are different: one is defined in the persistent storage as an entity and the other one isn't. Value objects are views, collections of attributes which do not have a semantic meaning, entities do. The definition is over 25 years old, but in the definition you quoted, an entity embeds logic: they encapsulate operations. Which is wrong, the logic is embedded in code outside the entity, the entity using code.

Frans Bouma

# Frans Bouma's blog@ Saturday, May 31, 2003 7:25 AM

Frans Bouma's blog

TrackBack

# XUL is the future - The Desktop War is Heating Up @ Sunday, June 01, 2003 10:29 AM

Wonna see the future today? Check out XUL (XML UI Language) @ http://xul.sourceforge.net

HTML was the markup for the browser. XUL is the markup for the desktop. The browser war is over, but the desktop war is just getting started.

Gerald Bauer

# re: About sharing Intellectual Property, USP's and Patents@ Tuesday, June 03, 2003 1:43 AM

Lol, my girlfriend is studying commercial economics (marketing), so this basically means we’re in the same boat.

Is your wife participating in the marketing offensive for LLBLGen Pro?

Paul Gielens

# re: About sharing Intellectual Property, USP's and Patents@ Tuesday, June 03, 2003 1:55 AM

hehe same thing indeed! :D

She helps with the positioning of the product, the formulation of the USP's, basicly to make it a product that appeals to a wide range of people instead of just die hard nerds who live in a code-editor all day. :) Research of target audiences, analysis of what they really want is very important, because no-one wants to develop a tool that is perhaps kick-ass but is not used by a lot of people because the target audience wants other things than you deliver :)

It's very funny how developers always try to avoid others messing with the specs of what they have to write but at the same time developers are also very busy to convince marketing people that the developer knows everything about USP's, what's really important to the user etc. :) The best software is still written by developers who have convinced themselves that stuff like "It just works (tm)", "it does what people want it to do" and similar phrases, are the true sellers of software and not feature number 10987342 which is used by 0.001% of the user-base :)

Frans Bouma

# The Bleeding Edge@ Tuesday, June 03, 2003 6:33 AM

The Bleeding Edge

TrackBack

# re: Microsoft, developer editions should be free.@ Wednesday, June 04, 2003 10:09 PM

I agree Frans, but at least it's much better than the original tag price, and it will certainly appeal some new database developers.

Paschal

# re: Microsoft, developer editions should be free.@ Wednesday, June 04, 2003 10:25 PM

I didn't even know the original price tag was that huge :) (a MSDN subscription makes you lazy I guess ;) ). There are a lot of developers in the world who do not have a lot of money but do know how to code (and are now working with free tools to write their .NET code). If MS truely wants to win the 'war' against Open Source and free tools, they should act better. But ok, it's a start, that $49.- .. :)

Frans Bouma

# re: Microsoft, developer editions should be free.@ Thursday, June 05, 2003 1:59 AM

I seem to recall that the shipping on that free Oracle copy is pretty pricey, though - wasn't it in the neighborhood of $35 for a full set of CDs?

Mike Gunderloy

# re: Don't try to re-invent the browser, please.@ Thursday, June 05, 2003 11:17 PM

Maybe we do not all have the same use of HTML. Said simply: If you think I'm going to develop my web site using web forms, then you are dreaming. I think, you are talking about different things, different needs.

jonx

# re: When Mono is completed, Linux is the option for the desktop.@ Saturday, June 07, 2003 12:04 AM

thats still not on the desktop dude.
and quite frankly i dont think the bulk of the mono effort is centered towards desktop applications.

Tq

# re: When Mono is completed, Linux is the option for the desktop.@ Saturday, June 07, 2003 12:36 AM

Frans, the problem is more on the user experience. And believe me, I tried with non developers people, it's a nightmare.

Installing Linux properly with 10 people sharing the same network is not really there.

And I like Linux, but as a developer and for some specific applications. ;-)

Paschal

# re: When Mono is completed, Linux is the option for the desktop.@ Saturday, June 07, 2003 12:42 AM

It can be tough to setup, I know :) I've worked with Unix for a few years so I could manage, but indeed, if you're used to 'C:' and nicely layed out folders, you get confused rather fast. However, if the boxes are setup ok, like: the user sees a desktop with open office on it, it can browse corporate folders shared on a server (which are mounted as a folder, great system), work with the files and read/write email, there is not a lot they can screw up. Most people in offices spend their day in office applications, so if you can make the box to be good at doing that, a LOT of businesses can use linux at the desktop today.

Mind you: even today a lot of businesses are on win9x/winME, and that's no picknick either ;)

Frans Bouma

# re: When Mono is completed, Linux is the option for the desktop.@ Saturday, June 07, 2003 1:21 AM

Frans, one term says it all: TCO.

So Linux can read/write MS Office docs. Problem is, you STILL have to retrain every single user to use some very separate apps there.

Virtually every shop out there with predominantly MS desktops will have to retrain their support too. Nowadays the help desk is a decent percentage of TCO for a company.

Seems the EXACT same argument was being made back in 1998-1999. You know, the old "we have apps" and "we have better security" and "bug fix releases come quickly" and "the purchase price is next to nothing". And Linuz since then has what? Moved from 2% market share to 3% on the desktop?

TCO, bud.

Dave

# re: When Mono is completed, Linux is the option for the desktop.@ Saturday, June 07, 2003 1:32 AM

Retraining is an issue indeed, however is there a clear view on this, how much the impact is? I think it greatly relates to the level of computer savvyness of the user. A word processor isn't that hard to work with, type, select font, save, print. However, support has to be retrained and that's costly, but even then: when your organisation is on NT4 + win98 and now moves to win2k3 server + winXP, it's day and night for both support and end user. THere, too, support personel has to be retrained to get the most out of the platform. I don't know if that retraining will be that much different from the retraining of the sysadmins to work with /etc files :)

(after all, linux or FreeBSD for that matter, isn't anymore at the level of 1998, 1999, where it was a mess. A lot of the configuration files have now gui applets, are better documented and there is overall better documentation. It still takes some effort, but I still believe its ready for the desktop and it can be worth it. With Mono on linux, (if everything pans out correctly), applications written for windows (desktop apps) can work on mono on linux as well, which makes the switch worth it.

Frans Bouma

# re: When Mono is completed, Linux is the option for the desktop.@ Saturday, June 07, 2003 2:21 AM

The problem is not technical. Even if Linux was easier to install and had everything an end-user would need, they will need:

- A worldwide distribution model. MS has it, and is very difficult to build.
- Make the internal help desks and support center to support Linux. This is _very_ hard to acomplish. The companies invested _a lot_ of money in training people with Windows technologies
- Books, training courses.
- Partners that can make money on it. There are much more ISVs in the Microsoft arena than in Linux's
- Probably more reasons ;)


Andres Aguiar

# re: When Mono is completed, Linux is the option for the desktop.@ Saturday, June 07, 2003 2:52 AM

Interesting article in the last InformationWeek: http://www.informationweek.com/story/showArticle.jhtml?articleID=10100565

"More than a third--38%--say Linux's greatest weakness is the limited availability of business applications for the operating system, up from 32% a year ago. Nineteen percent say the proliferation of different flavors of Linux is a problem, up from 12% a year ago, raising the fear of incompatibility among the various versions, as happened with variants of Unix."

And not to mention the pending legal action from SCO, which undoubtedly is going to have some impact. Already, there are analysts (I think Gartner but I may be wrong) that have cautioned against using Linux at all right now in the face of that action.

Tim Marman

# re: When Mono is completed, Linux is the option for the desktop.@ Saturday, June 07, 2003 2:55 AM

Duh. If I read Randy's original post, I would have realized that it was Giga and not Gartner who said that :)

Tim Marman

# re: When Mono is completed, Linux is the option for the desktop.@ Saturday, June 07, 2003 4:36 AM

I don't know how many of you have used Lindows, but Lindows is VERY usable. My mom -- which is not quite techno-phobic, but definitely a hard sell -- would be comfortable with Lindows.

However, I disagree that Mono will make the shift. The only way that could happen is if they had a 100% solid Windows Forms implementation, so there could be desktop app compatiblity. Not only is Ximian not interested in doing it (someone else is), I have grave doubts that anybody short of a team of dozens, maybe hundreds, of Windows _experts_ could ever pull it off. Windows is a moving target, as Wine has showed, and Windows Forms is so leaky an abstraction that it's impossible to forget that there's Windows underneath.

Brad Wilson, The .NET Guy

# re: When Mono is completed, Linux is the option for the desktop.@ Saturday, June 07, 2003 4:41 AM

Brad: windows forms is such a pain because it is based in HWND's and messages when you want to do tricks (and who doesn't). If you can create an api that has the same interface as system.windows.forms, but calls into the gnome/kde libs, it will work. If mono isn't gonna do winforms, it will indeed be something else that needs to make the shift. I also don't see why a winforms implementation should use wine or a win32 imitating layer, everything that's needed is already there, in X.

Frans Bouma

# re: When Mono is completed, Linux is the option for the desktop.@ Saturday, June 07, 2003 7:03 AM

Maybe everyone knows the basic functionality of a word processor or a spreadsheet, but it's the power users who know the shortcuts. Where MS flat out beats the competition is standardization of everything.... toolbars, menu shortcuts, ... even a unified scripting language.

These power users do alot for a company. They heavily influence perceptions. They are the most highly productive employees. They deal with the brunt of questions that the help desk would otherwise have to.

Compare your arguments for Linux to those elitists who insist on tableless layouts in websites. In a sheltered corner... weblogs made by us geeks and read by us geeks who generally have standards-compliant browsers... this sort of stance works fine. In the real world... businesses strapped in bad economic times seeking every dollar of revenue from other companies whose lack the support to upgrade their browsers or connections... is it any wonder CSS still hasn't caught on?

Dave

# re: When Mono is completed, Linux is the option for the desktop.@ Saturday, June 07, 2003 8:31 AM

Anyone else notice that the linux guys only halfway decent products are the ones they clone from MS or some other commercial company? Then, they say they hate MS, because they just steal stuff from everyone. Some people have a bad case of Robin Hood syndrome. I would hate to see the day when commercial commercial software companies cease to exist... there wouldn't be any cool products to clone anymore. :-)

Jesse Ezell

# re: When Mono is completed, Linux is the option for the desktop.@ Saturday, June 07, 2003 9:06 AM

errr, doesn't every software company clone aspects of others? I don't know, but 'Excel' isnt a microsoft invention, nor is 'wordprocessor' or even wysiwyg wordprocessor :)

Frans Bouma

# re: When Mono is completed, Linux is the option for the desktop.@ Saturday, June 07, 2003 9:21 AM

Mono is far, far... far from ready. Besides Mono is claiming an independant framework and not a 1:1 copy for .NET. And what'll happen with Mono once MS releases .NET 5.0 concerning compatibility? I can't imagin commercial companies taking such a risk for serious apps.

Paul Gielens

# re: When Mono is completed, Linux is the option for the desktop.@ Saturday, June 07, 2003 11:45 AM

I don't think Mono will be enough. I think it will increase Linux's viability as a server platform, but not for desktops. The availability of good applications and good support for end users is the key there.

randy

# re: Optimization the right way: optimize your algorithms@ Sunday, June 08, 2003 4:38 AM

Interesting article, I like your approach. At the end of the day we use dotnet for speed of development, who has the time to think about the msil and low level optimisations ?

Gotta respect the demo programmers anyway, if you could get such amazing effects out of an amiga or an st we should trust you when it comes to dotnet :D

OmegaSupreme

# RE: Windows.Forms on Mono@ Monday, June 09, 2003 7:56 AM

I'll be very happy if we can get to a point where most .NET desktop applications will run on Mono , but it's not going to be easy. The problem is indeed Windows.Forms, as Brad Wilson said.

The mono WinForms implementation IS based on Wine, and is thus is limited by the extent of Wine's Win32 coverage. As Brad said this is always going to lag by a certain amount, although I hear it's currently good enough to run MS Office and StarCraft (GTA 3 soon, apparently)

Frans: I watched the mono WinForms mailing list go over and over the question of whether their implementation should be based on Wine or not. What it came down to was that anyone who had *really* looked into it found out that WinForms is *such* a leaky abstraction that you couldn't do it without emulating at the *very least* all the message pumping behaviour of Windows.

The other problem is that (in the main) the only ppl who really know how WinForms works are old Win32 developers, who understand what is going on beneath the abstarction. These ppl are the only ppl who are going to be able to write a reasonably compatible implementation of WinForms in a reasonable amount of time. Unfortunately, they don' t (as a rule) know GTK/QT/X, and generally are used to programming on Windows. I think the wine-based WinForms implementation is going to flesh out a lot quicker than any non-wine one could.

So, as it stands, to run WinForms apps, you'll need Wine. For all non-WinForms apps, though, mono should be great.

In the end, I think this is a shame. When I first heard about Mono, I was thinking about how great it would be to just be able to run Windows apps on Linux. I've since seen that this probably won't happen (seamlessly). What you CAN do, however, is write a cross platform non-gui app, or even a cross-platform gui app by using GTK# or QT# (& I think there is now a SWT port as well).

Wow, I've written too much. I'll shut up, now!

Swythan

# re: A quick update on LLBLGen Pro@ Tuesday, June 10, 2003 9:26 AM

So, Frans, when are you going to add the SQL CE option? That would be really sweet!

Darren Pruitt

# re: The 'benchmark' code@ Thursday, June 12, 2003 6:32 PM

Frans,
Here is my test on a Celeron 1.8 running XP Pro. I can run more tests against separate servers later.

The dynamic query wins by 17 seconds.
Dynamic - Total time: 00:01:33.5845680.
StoredProc - Total time: 00:01:50.7292208.

This is good news, since I am building a routine to copy data between tables on different servers using DB2/400. The class uses a select statement to retrieve the source data, then creates an insert statement from the source dataset for the target.

I wanted to handle this for many tables and potential libraries and did not want to create and manage all the stored procedures. I don't care if the table structures change and have a generic copy routine.

I will wrap this in a web service and use it to copy policies between our production and test libraries that reside on separate servers.

I enjoy reading your common sense and practical articles and comments.

Ron

Dynamic query benchmark
Benchmark started on: 6/13/2003 12:14:45 AM.

Benchmark ended on: 6/13/2003 12:16:19 AM.
Total time: 00:01:33.5845680.
Amount of runs: 10000. Max. amount of rows retrieved: 830
Stored procedure benchmark
Benchmark started on: 6/13/2003 12:16:19 AM.

Benchmark ended on: 6/13/2003 12:18:09 AM.
Total time: 00:01:50.7292208.
Amount of runs: 10000. Max. amount of rows retrieved: 830

Ron Steiger

# re: Feeding the trolls@ Friday, June 13, 2003 8:32 AM

Please don't take my post as an attack on anyone. It was just a satirical take on Scott's bloodbath of rage.

Marc

# re: Feeding the trolls@ Friday, June 13, 2003 9:12 AM

Oh, come on Frans. Lighten up a little. Scott's post was funny, and given how frequently self-styled "industry authorities" hold forth about things about which they clearly know nothing, such responses are a harmless bit of venting.

I would agree with you that responding with ad-hominem insults to every ignorant opinion column you read would be excessive, but a choice response to the particularly egregious can be healthy, IMO. No harm in letting off a little steam occasionally.

G. Andrew Duthie

# re: Sometimes, the human mind acts in mysterious ways@ Saturday, June 14, 2003 12:23 AM

Good story Frans! If it makes you feel better, I have also wanted to gather a couple of static functions under a contract and realized that it wasn't possible. I also felt somewhat "ashamed" afterwards, but what the heck, it's not the end of the world.
:-)

So, what solution did you choose? Skipping the interface or skipping static?

Best Regards,
Jimmy
###

Jimmy Nilsson

# re: Sometimes, the human mind acts in mysterious ways@ Saturday, June 14, 2003 12:24 AM

lol, this really sounds Familiar to me....

Jonne Kats

# re: Sometimes, the human mind acts in mysterious ways@ Saturday, June 14, 2003 12:30 AM

Frans, you seriously disappointed me ;) No clue what methodology you use, but eXtreme Programming (XP) would have trapped that issue probably in the first iteration. Start prototyping dude!

Paul Gielens

# re: Sometimes, the human mind acts in mysterious ways@ Saturday, June 14, 2003 12:30 AM

:)
I skipped the interface. The static methods are really handy, since they're one shot calls, so having an object for just 1 call is not that handy. :)

Frans Bouma

# re: Sometimes, the human mind acts in mysterious ways@ Saturday, June 14, 2003 12:31 AM

Paul hehe I'm not gonna bite! am NOT! :D :)

Frans Bouma

# re: Sometimes, the human mind acts in mysterious ways@ Saturday, June 14, 2003 12:33 AM

Hehe, wasn’t my intention… just a little teaser ;)

Paul Gielens

# re: Sometimes, the human mind acts in mysterious ways@ Saturday, June 14, 2003 12:37 AM

I know ;)

Frans Bouma

# re: Sometimes, the human mind acts in mysterious ways@ Saturday, June 14, 2003 12:50 AM

Your implementation SCREAMS Factory Pattern. It's what I use in GenX.NET when I deal with my OutputProviders without needing to know which provider I am using. I'm going to be writing a Factory Pattern tutorial sometime early next week, after I RTM GenX.NET 3.0. Until then, don't scrap your code.... you're just missing one more piece to the puzzle.

Any BTW, you didn't make a fool out of yourself. It can be done.

Robert McLaws

# re: Sometimes, the human mind acts in mysterious ways@ Saturday, June 14, 2003 12:53 AM

Also, I know this method would be perfect because GenX.NET uses it for the exact same reason... specific implementations for specific databases. Believe me, understanding this method will take your coding to a whole new level.

Robert McLaws

# re: Sometimes, the human mind acts in mysterious ways@ Saturday, June 14, 2003 12:56 AM

Robert, I do use a lot of factories, I have the GoF book. :) In my DAO objects (using the DAO pattern) I simply want to call IActionQuery query = DynamicQueryEngine.CreateInsertQuery(//...);

Which one is based on the using directive at the top. This is generated code, so I only have to change 1 line to make it work with Oracle f.e. and the generator generates Oracle code. I understand that when I create the DAO in the DAO factory I can also create the right DQE object and pass it to the DAO, but that's not that efficient because these DAO objects are not living very long. A static method is then more appropriate. Admitted, it can be done using a factory, but a static method in this case is more efficient I think. It's not a big deal, the templates used for the code are closely related to the DQE and the database driver used, so it's a complete package, but I was just wondering if I could create an interface for this, but I couldn't. :)

Frans Bouma

# re: Sometimes, the human mind acts in mysterious ways@ Saturday, June 14, 2003 1:03 AM

Robert: I don't have a central cache system where I can store generic objects, so I can't cache these kind of objects like the DQE. If I could, I definitely would have used the factory route. But now I can't. Image that when I load 2000 customer objects in memory. Then I have 2000 times created the DQE. That's pretty amazingly inefficient :)

But I appreciate your thoughts. You definitely understand what's required for good OO software :)

Frans Bouma

# re: Finally my own skin@ Saturday, June 14, 2003 4:17 AM

The menu and title aren't visible .. Change the color of the text also ;)

Best regards
Marcus

Marcus

# re: Finally my own skin@ Saturday, June 14, 2003 4:22 AM

hehe I know :D I had a margine defined somewhere that bugs the crap out of it. I've almost fixed it :D (famous last words)

Frans Bouma

# Mozilla@ Saturday, June 14, 2003 4:27 AM

Don't forget to test on Mozilla. I'm almost positive what I'm seeing is not correct, using Mozilla Firebird 0.6. :-D

Brad Wilson, The .NET Guy

# re: Finally my own skin@ Saturday, June 14, 2003 4:31 AM

good tip, thanks :)

Frans Bouma

# re: Finally my own skin@ Saturday, June 14, 2003 5:38 AM

I second the Firebird problem. The horizontal lines in the left column extend out of the left column and into the content area a bit.

sirshannon

# Emitter@ Saturday, June 14, 2003 6:05 AM

Emitter

TrackBack

# re: Finally my own skin@ Saturday, June 14, 2003 6:09 AM

phoenix/firebird's lines are fixed. Now I only have to battle with the borders below and at the right which seem to appear in firebird but are not there in IE (MyIE2).

Opera doesn't eat the javascript btw. Not that I care, but perhaps there is a solution. It doesn't understand the createElement statement.

Frans Bouma using Firebird

# re: Move away from stored procedures or not?@ Monday, June 16, 2003 12:41 AM

Very interesting points. In most of the corporate systems, if code is considered to be the the crown-jewels (assets) then *stored-procedures are surely the diamonds. I think there'll be conversion utilities (*SPs into embedded code) to help transition (if any) but it will still rest with the performance of the system. In addition to security, most of the *SPs are valued for performance while handling high volume transactions - if it can shave off a few millisecs then it'll certainly get serious consideration. Good post Frans.

SBC

# re: Move away from stored procedures or not?@ Monday, June 16, 2003 10:33 AM

Views are great. Indexed views are even better. Too bad SQL Server 2000 Enterprise is so damn expensive!

Travis

# mads studentblog@ Monday, June 16, 2003 10:39 AM

mads studentblog

TrackBack

# Andres Aguiar's Weblog@ Monday, June 16, 2003 10:39 AM

Andres Aguiar's Weblog

TrackBack

# re: A quick update on LLBLGen Pro@ Tuesday, June 17, 2003 4:35 AM

Any plans for two-way tools a la DeKlarit? If not, what is the process for updating the DAL as the database changes across releases of software?

--Bruce

Bruce Onder

# re: A quick update on LLBLGen Pro@ Tuesday, June 17, 2003 4:39 AM

No, there are no plans for two way tools, since these can be pretty problematic. When the database changes, you simply refresh the catalog view, LLBLGen Pro will enlist the classes, typed lists and other elements which are changed because of the changed database and you can apply these changes then, regenerate the code, and are set.

Frans Bouma

# re: A quick update on LLBLGen Pro@ Tuesday, June 17, 2003 11:47 AM

Okay. I like some of the features DeKlarit has, but I agree with you that these can be problematic.

I ran 1.2 on Northwind with no problems. I am next going to run it on the database created by my current DeKlarit project and see how the code looks there. :)

--Bruce

Bruce Onder

# re: A quick update on LLBLGen Pro@ Tuesday, June 17, 2003 8:50 PM

Which features do you like of DeKlarit? Can you describe them a bit? Perhaps LLBLGen Pro already will support them :)

LLBLGen Pro is in every word a successor of LLBLGen v1.0 so it is not a simple upgrade, it is a new tool with a broader functionality spectrum, which means that the functionality of v1.0 is extended and re-implemented and new functionality is added. The concept of what the generator will generate is moved upwards, from the DAL to the DAL + BL Facade, which is now integrated. :) (hmm, I'm starting to sound like a person from marketing ;))

Frans Bouma

# re: A quick update on LLBLGen Pro@ Wednesday, June 18, 2003 1:44 PM

In theory I like the fact that Deklarit lets me focus on the object model and builds the data model behind the scenes for me. In practice the tool is a bit hard to use, but this is IMO user experience.

For example, in DeKlarit I can create the following entity:

Client
ClientID (PK)
ClientName
TransactionID
TransactionDateTime
TransactionAmount
ClientBalance (sum(TransactionAmount))

This will produce two tables for me, Client and Client1. It would produce a Transaction table only if I created a separate entity (what they call a business component, which i feel is a misnomer) called Transaction and had those same property names in it (Deklarit uses name/identity equivalance on properties).

Bruce Onder

# re: A quick update on LLBLGen Pro@ Wednesday, June 18, 2003 1:48 PM

oops, the transaction* properties should be indented a few spaces to show they are a level inside of the Client entity.

Bruce Onder

# re: A quick update on LLBLGen Pro@ Wednesday, June 18, 2003 2:39 PM

Will there be strongly typed tables in 2.0?

Bruce Onder

# re: A quick update on LLBLGen Pro@ Thursday, June 19, 2003 6:53 AM

There will be strongly typed tables, so called typed lists. These can be designed in the tool (the columns and the list of entities to retrieve them from) and contain filters in code, so you can filter on the list at runtime. These are typed datatables.

I'm a strong believer of abstract modelling of datamodels, by using NIAM or ORM (see http://www.orm.net). Therefor modifying a database in LLBLGen Pro is not necessary since the database is created using an E/R model that is derived from a NIAM / ORM model created by a software architect.

LLBLGen detects automatically relations between entities (1:1, 1:n and m:n) and adds properties to retrieve related data automatically. So you can walk these relations by simply pressing the '.' :) -> CustomerEntity c = new Customer("ABC");
string ProductName = c.Orders[0].OrderDetails[1].Product.Name;

All lazy loaded. Also available in a datagrid, you can bind c.Orders to a datagrid and walk the complete model from there, in your grid :)

Frans Bouma

# re: Harry Potter reloaded@ Saturday, June 21, 2003 9:10 PM

You're joking right ;)

Paul Gielens

# re: Harry Potter reloaded@ Saturday, June 21, 2003 11:10 PM

No :) Harry Potter rocks. At first I thought "but... that's a kids book", but that's not true, the books are very funny, you should read one :)

Frans Bouma

# re: Harry Potter reloaded@ Sunday, June 22, 2003 1:00 AM

Never read "one" myself so I better not comment directly related to the book. Although in a twisted way it's quit funny, just imagine reading a book of Harry P. lol Get your sorry ass on the beach in Scheveningen Frans and enjoy the weather reading some serious garbage like the Panorama or even more worse, the Privé ;)

Paul Gielens

# re: Harry Potter reloaded@ Sunday, June 22, 2003 1:06 AM

hehe :) We have all 5 books of HP, and when you start reading one, you can't stop. It's not written like a kids book, it's readable :) and the beach? Are you nuts? It's raining here :)

Frans Bouma

# Emitter@ Sunday, June 22, 2003 7:26 AM

Emitter

TrackBack

# re: A quick update on LLBLGen Pro@ Sunday, June 22, 2003 9:38 AM

Nice! Hurry up, summer! :)

--Bruce

Bruce Onder

# re: LLBLGen Pro screenshot@ Monday, June 23, 2003 10:33 AM

Nice work Frans!

Chad Osgood

# re: LLBLGen Pro screenshot@ Monday, June 23, 2003 10:36 AM

Thanks :) Most of the work done is behind the scenes, this is the first time I can actually show something that is visually attractive and somewhat interesting. :)

Frans Bouma

# re: LLBLGen Pro screenshot@ Monday, June 23, 2003 10:38 AM

Very nice UI. Is that the Magic library from Cronwood?

Patrick Steele

# re: LLBLGen Pro screenshot@ Monday, June 23, 2003 10:42 AM

Yes, that's the magic library. I haven't used all of its power though, but it is a very handy library for dynamic gui building, you can create powerful gui's in no time. :)

Frans Bouma

# re: LLBLGen Pro screenshot@ Monday, June 23, 2003 11:13 AM

Yeah, I've done some prototyping with it and it's a very nice package for the price (free!).

Patrick Steele

# re: Create #region macro for C#@ Monday, June 23, 2003 4:38 PM

If you are looking for a tool to quickly place templated code such as regions or properties take a look at QuickCode.Net I have been using it for a while and I like it.

Wes Haggard

# re: LLBLGen Pro screenshot@ Monday, June 23, 2003 9:03 PM

It is looking great..
Will we see any beta's or opportunities to test :-)

Keep up the good work

Michael Hensen

# re: LLBLGen Pro screenshot@ Monday, June 23, 2003 9:09 PM

There will be a short beta cycle of course :) I haven't decided yet if that will be a closed beta or an open beta. Of course there will be a trial version when it's released :)

Frans Bouma

# re: LLBLGen Pro screenshot@ Monday, June 23, 2003 9:09 PM

I use LLBLGen alot, a great time saver. Looking at that screenshot and feature list though, guess I'm gonna have to scrape together a few bucks this time. Go easy on us here in Africa though ;-)

Senkwe Chanda

# re: LLBLGen Pro screenshot@ Monday, June 23, 2003 9:18 PM

Senkwe Chanda: :) I'll do everything I can to make the price as low as possible. It will already have a site license instead of a per-seat license, so you pay 1 price and all the developers in your department can use the tool. It will be around 150-170 euro.

Frans Bouma

# re: LLBLGen Pro screenshot@ Tuesday, June 24, 2003 7:26 AM

Exciting, "generates a complete O/R mapper framework" is just what I wanted to know! I hope that our discussions about OR Mapping will be expressed in tool supremacy!

Heads up!

ps: What happens with heavily normalised models? Is your tool "smart enough" to let the end user be the director of what to do with what in contradiction to many, many commercial tools out there?

Paul Gielens

# re: LLBLGen Pro screenshot@ Tuesday, June 24, 2003 8:30 AM

"What happens with heavily normalised models? Is your tool "smart enough" to let the end user be the director of what to do with what in contradiction to many, many commercial tools out there?"
I know what you are refering to :) but I kept the 1 table per entity restriction. However, it shouldn't be a problem, here is why: at the left you see f.e. a relation between employee and customer, over the entity order, a m:n relation. The tool finds these relations which are not obvious to the user. ('orders' is not an intermediate table between the employee-customer relation, the relation is created using 2 1:n relations).

It is possible to navigate from one entity to any other entity in the system, using the relations. The code generated will embed as much logic as possible to make you navigate/retrieve related entities from any entity you currently have an instance of. So heavily normalized databasemodels are not a problem, you can navigate to any related object without a problem.

Not in the screenshot, because I have to create the designers yet, are the typed lists. These are read-only typed datatables based on entity definitions, which can span more than 1 table/entity, f.e. all orders with the customer fields joined with every row. So for data-retrieval, where bulk data has to be retrieved which spans more than 1 table, you can define typed lists, and the typed list code embeds rich logic for filtering and clever instantiation.

Every entity definition has also a typed collection (hi mr. Fowler!) which embeds logic to work on groups of entities directly in the persistent storage or in the collection itself (and is bindable too :))

I'm pretty sure that on the DML front, you can work easy with the entities and the relations between the entities (plus the dynamic query engine and the filters you can define to retrieve groups of objects also f.e via filters on related objects.), and on the data retrieval front, you can work with indivitual entities, the entity collections or with the typed lists.

I also implemented stored proc execution as a bonus for people who have stored procs they want to embed (select sp's only).

Frans Bouma

# re: LLBLGen Pro screenshot@ Tuesday, June 24, 2003 8:33 AM

(oh, the typed lists use the dynamic query engine and you can f.e. define a dynamic query using the same logic in your own code if you like. Yuo then can retrieve the data in a normal datatable, but the overall flexibility is there. ).

Frans Bouma

# re: My wish-list for the next Visual Studio.NET / .NET api release, part II@ Wednesday, June 25, 2003 1:43 AM

Hi Frans

I recently created tool to generate NAnt build files based on VS.NET project files. If you're intrested check out my post: http://weblogs.asp.net/jan/posts/9255.aspx

Greetz
Jan

Jan Tielens

# re: My wish-list for the next Visual Studio.NET / .NET api release, part II@ Wednesday, June 25, 2003 1:46 AM

I've read that posting, thanks for the heads up :) I haven't tried it yet, I already made nmake files for the project I'm currently working on, but for the next time I'll consider it.

Frans Bouma

# re: My wish-list for the next Visual Studio.NET / .NET api release, part II@ Wednesday, June 25, 2003 2:27 AM

A great wish list - unloading an assembly has always been at the top of my list.

Alex Hoffman

# re: My wish-list for the next Visual Studio.NET / .NET api release, part II@ Wednesday, June 25, 2003 3:28 AM

A great list, Frans. I'll add that for the documentation (MSDN Library), I would like to see the .NET Compact Framework documentation as a separate collection rather than mixed in with the full .NET Framework documentation.

-Nino

Nino Benvenuti

# re: My wish-list for the next Visual Studio.NET / .NET api release, part II@ Wednesday, June 25, 2003 4:35 AM

Darn, I forgot one:
Make the EventArgs object be able to hold an object reference. Now you have to create new eventhandlers every time you want to pass simple event data, you have to define an EventArgs derived class plus eventhandler.

Frans Bouma

# re: LLBLGen Pro screenshot@ Wednesday, June 25, 2003 10:19 AM

Looking good! I can't wait. Just a reminder to take special care for making the dev model of this work well for multiple developers using source control and such.

a

# re: LLBLGen Pro screenshot@ Wednesday, June 25, 2003 10:23 AM

It will generate sourcecode in a directory, not overwriting readonly files. Therefor, ideally you'll do this: check out the files, generate new code, overwriting the files, check in the files again. There are a number of sourcecontrol systems and I can't support them all.

The whole idea is that the generated code is an assembly you work with, thus the code should be compiled as a single assembly, and be referenced from own code, you also don't edit generated code, you derive from the generated code. Therefore, source control misery is limited to a bare minimum.

Frans Bouma

# re: My wish-list for the next Visual Studio.NET / .NET api release, part II@ Wednesday, June 25, 2003 11:37 AM

Here's a couple I'd like to add to the .NET API:

1. More interfaces. Not enough classes derive from interfaces, which makes interface-based testing (read test-driven development) almost impossible. (Think HttpContext.)

2. Better abstraction in ADO.NET. You can't really write clean generic data access code because you can't create a DataAdapter without knowing whether you're doing SQL or OLEDB.

Those two have bugged me for a while.

Peter Provost

# re: My wish-list for the next Visual Studio.NET / .NET api release, part II@ Friday, June 27, 2003 2:25 AM

::Better abstraction in ADO.NET.

Worse - when you use visual deisgn (drag drop them onto a form) you get all the stuff hardcoded. Terrible.

I know you should never code this way, but they DO support it - and they do so wrong.

Thomas Tomiczek

# re: About code generators / generating code@ Sunday, June 29, 2003 12:17 AM

We used a slightly modified version of LLBLGen 1 for a project at the Fontys University. This saved us roughly 70% of the development time...not only because of the generation features, but also the iterative development made possible with LLBLGen. It's fast and easy to do roundtrip engineering using Visio creating the E/R, let LLBLGen update the DAL accordingly and slapping business-logic on top.

About 90% of the generation tools out there aren't useful indeed.

Just to note: LLBLGen also has its weak points... I'm not pr'ing over here ;)

Paul Gielens

# re: About code generators / generating code@ Sunday, June 29, 2003 12:24 AM

:)

Code generators have disadvantages too, like when they are not able to generate the code for the functionality you define in them, or the generated code is not up to par with the functionality requirements you have. I don't think the percentage of useless generators is around 90%, but there are a couple which are not useful in a wide range of applications, however no tool is (try hammering a nail with a screwdriver ;)). That's why you have to make a choice which generator you'll use. That's the question you have to ask yourself, not if generation of code is useful, because it is.

The working-method you describe is the one I forsee also: modelling abstract database models in a high end tool, generate code to work with the physical result of that modeling and on top of that, if possible generate BL code, and if not, hand-develop it. With a form-designer to do the gui (which is also a code generator ;)) it's easy to cut down development time using generators. It's just weird not a lot of people understand that. Ah well, the Not Invented Here (NIH)-syndrome is still roaming I guess. ;)

Frans Bouma

# Datagrid Girl@ Sunday, June 29, 2003 5:48 AM

Datagrid Girl

TrackBack

# Jonne Kats@ Sunday, June 29, 2003 5:48 AM

Jonne Kats

TrackBack

# Eric J. Smith's Weblog@ Sunday, June 29, 2003 5:48 AM

Eric J. Smith's Weblog

TrackBack

# Patrick Steele's .NET Blog@ Sunday, June 29, 2003 5:48 AM

Patrick Steele's .NET Blog

TrackBack

# re: Don't try to re-invent the browser, please.@ Sunday, June 29, 2003 11:02 PM

You have to be kidding me. System.Windows.Forms is such a steaming pile of piss that Mono has to use Wine (windows emulation) in order to mimic it exactly. The "HWND issue" is most certainly not fixed, SWF exposes all the gory details of the underlying Win32 implementation to the world.

If you want a decent cross platform GUI system, use GTK# - entirely unicode, cross platform, containment based layout, sane language bindings etc. If you actually care about having nice GUIs on a webpage (though most webpages look and feel waaaay nicer than your average GUI to me) then you want to use a decent widget toolkit to do it.

MH

# re: Don't try to re-invent the browser, please.@ Sunday, June 29, 2003 11:07 PM

Tell me, why should the underlying implementation of a given method be the same on mono as on .net / win32, i.e.: using win32 functions? If a class 'button' mimics a button, no-one should care how that class does that, be it calling into GTK+ or win32 or other widget lib, the bottom line is that it should behave like a button.

The problems arise when .NET code starts to use HWND related functionality to create 'nice' effects, like vs.net style menus, or a treeview control which does more things than it currently can do.

However, 100% .net code should be runnable on a mono winforms implementation which simply implements the functionality using a native library like GTK.

Frans Bouma

# re: About code generators / generating code@ Monday, June 30, 2003 6:19 AM

I think an important point that should also be made is that programmers the use code generators should understand the code that is generated.

darren pruitt

# re: About code generators / generating code@ Monday, June 30, 2003 7:10 AM

I hope you mean: "understand the interface and functionality of the code generated". I really do not see why a developer who uses a code generator, should understand the source code generated, since he shouldn't modify that code anyway, only extend it, and then the developer should know the interface and functionality.

if class Foo has a method Bar, and all you should hve to do is call 'Bar', why do you want to know how Bar works? I never check the x86 assembler the JIT creates, nor do I decompile .NET library methods (unless they have unexpected behaviour, as in: it looks like a bug).

Frans Bouma

# re: A quick update on LLBLGen Pro@ Monday, June 30, 2003 4:01 PM

How are you handling nullable types in Pro? In 1.2 you use SQL Types.

nullable types

# re: A quick update on LLBLGen Pro@ Monday, June 30, 2003 10:01 PM

The classes are .NET classes and have .NET types for their properties. You can test when a value was NULL, but the properties exposed have .NET types. When you want to set a value to NULL, you simply specify null or nothing. When a field is nullable it will be ok, otherwise an exception is thrown. WHen you read a NULL value from the database, it gets converted to a default value, like "" for NULLs in string related types. These defaults are user definable in a special class. There is no SqlType nor equivalent used anywhere :)

Frans Bouma

# re: Serious SqlServer security problem: Microsoft's state of denial@ Tuesday, July 01, 2003 5:44 AM

Totally agree Frans, but you can also add the common scenario of hosting (like myself) where you have a firewall between the live server and the databse box.

I setup the two by letting access to nothing except the port to talk to SQL.

So the two cases you talked about are absolutly not working at all in this scenario.

Maybe the light will come from Yukon where apparently SQL will be closer to the Framework model.
BTW, nice stylesheet on your page ;-))

Paschal

# re: Serious SqlServer security problem: Microsoft's state of denial@ Tuesday, July 01, 2003 5:47 AM

Oh I forgot also a case I know well where for some specific reasons too long to explain, the live server can connect either to a SQL box or a MySQL box(on Unix).

Using some DAL to switch easily from one to another, how MS think about trusted connections with an ASP Net username.

No way ;-)

Paschal

# re: Serious SqlServer security problem: Microsoft's state of denial@ Tuesday, July 01, 2003 5:50 AM

The firewall solution is indeed a possible 'fix', but firewalls are not that cheap, plus you already run the box inside a DMZ of a firewall. :) What I really would like to see is the ability to use application trusted connections as they are defined in ADO/Sqlserver. You can then define the trusted connection with an application and be done with it, which is in fact what you want. At the moment it's a chewing-gum and iron wire solution: it will hold but for how long? :)

about the css: thanks :))

Frans Bouma

# re: Serious SqlServer security problem: Microsoft's state of denial@ Tuesday, July 01, 2003 9:15 AM

I have a comment, storing connection string in the compiled form it is "secure" as storing it in text file. The reason is simple if you run a dissembler available with .net framework on this assembly, connection string becomes fully visible. The only solution is encryption.

Michael

# Store Connection Strings in the Registry@ Tuesday, July 01, 2003 2:18 PM

It's possible to store connection strings in the registry, and apply decent DACLs to that. I believe you could also use a local LSA secret if you really wanted to. Writing Secure Code by Michael Howard and David LeBlank has some good info on this. Of course if the web server is 0wn3d that still leaves your SQL box vulnerable, but it certainly raises the bar.

JosephCooney

# re: Serious SqlServer security problem: Microsoft's state of denial@ Tuesday, July 01, 2003 9:08 PM

All the tricks of hiding / protecting the connection string are nice and clever, but they all show how bad the mechanism is. No-one thinks its ok to store your windows credentials in a string somewhere so you can log on; these credentials are stored in a userdatabase and you are granted access. What the text based connection string shows us is that the mechanism is flawed: it should be possible to define which application or which user has access to given objects inside a database, without having to specify a textbased string somewhere with a password.

The integrated security option is in theory a good replacement, in practise it needs some work though.

Btw, Joseph: the idea is neat, but the ASPNET user f.e. is not able to read from the registry... therefor you have to give up some security settings which are applied for you when the .NET runtime is installed by giving ASPNET access to the registry.

Frans Bouma

# re: Serious SqlServer security problem: Microsoft's state of denial@ Wednesday, July 02, 2003 2:43 PM

I can't confirm or deny whether the aspnet user can read the registry by default (it can on my machine, and I don't remember making any special changes), but you can easily configure it so that user CAN read the registry, or change the web.config so that a particular application runs as a different user (which you can give the required permissions to). Also registry access is not an all or nothing permission. Like the file system you can configure the permissions to a high granularity to give the access required. You could also encrypt the connection string (but then the probelm becomes where to store the key), or use DPAPI (which reduces the key management problem). Also if you make all your database access via stored procedures, and only give your SQL User account(s) access to these you can help mitigate the risk if your web server is compromised and your connection string is discovered. Maybe I just don't see the problem for what it is, but it seems to me that there are a number of options available for securing the connection between your SQL server and web server. Here is a useful link re: storing database connection strings securely.

http://msdn.microsoft.com/architecture/application/default.aspx?pull=/library/en-us/dnnetsec/html/SecNetch12.asp?FRAME=true#storingdatabaseconnectionstrings

Also, as I said in my previous comment Michael Howard and David LeBlank's book "Writing Secure Code" is really good for discussing this sort of thing.

JosephCooney

# re: We're a labeled group now!@ Wednesday, July 02, 2003 11:08 PM

:)

It's the religious nature of it all that I find amusing. I have no problem with code generation and the stuff I've read here about generating and regenerating database layers is great. I just don't think that it's going to take over entire application areas like Ian Wij's seems to in his "Writing Code is Stupid" piece. Evolutionary language improvements and tools to handle the mundane areas sure, but gather requirements and build from a requirements model? Nah.

Writing code is hard. Anything that makes it less hard is good; that includes code generators, testing, decent clients, etc, etc. But none of them are a silver bullet.

And I'm sorry but that quote of yours over on James' Avery's blog "People who do not understand that code generation is the future will be the first who will not be able to keep up with the rest who do." made me smile and kinda makes me feel that it's you guys that are the elitists - I'm glad it didn't end "will be the first against the wall when the revolution comes" ;)

And... How does questioning Ian's idea that code gen can replace "the "small army of generally not well skilled developers" that can be found in most organisations and who are "churning out a mass of ill-specified code through a poorly managed process" with some nirvana in which we "capture the requirements of the model" and have a code generator that can "consume the new model and generate appropriate code".
make me anything but a realist?

Keep up the good work, and prove us doubters wrong.

Len Holgate

# re: We're a labeled group now!@ Thursday, July 03, 2003 1:25 AM

Here I come with a lot of comments only to find that Len has already written such a good one! Typical.
:-)

There's no single way, of course. Code gen is great to improve productivity. But we have to understand what to generate (or what has been generated).

Jimmy Nilsson

# re: We're a labeled group now!@ Thursday, July 03, 2003 3:46 AM

This debate is almost an unrealistic as the "paperless society" debate.

What more can be said?

Ebenezer Ikonne

# re: We're a labeled group now!@ Thursday, July 03, 2003 3:53 AM

I absolutely agree with Len. People who think that writing code will go away are crazy. I also think that generating entire applications is rediculous and will never happen. What will happen is that things will continue to be abstracted to higher and higher levels, but at the same time requirements will become more and more complex. So there will always be programmers out there writing code in one form or another.

Eric J. Smith

# re: We're a labeled group now!@ Thursday, July 03, 2003 4:01 AM

Ebenezer Ikonne: what has a paperless office idea to do with generating executable code from models? A paperless office doesn't work because the people IN the office want everything on paper so they print and print and print. If everyone starts using email and not a fax, it might become a reality. But that's another story.

All: What most people seem to think is that code generators should generate sourcecode. NO. They should generate executable instructions. Do not stick with a 'programmer language', because those things are invented for humans. No true code generator should generate plain sourcecode but should generate MSIL or other directly executable instructions.

Programming and developing software have NOTHING to do with programming languages and typing texts in a text-editor. Programming languages and typing texts are related to the implementation of the programming RESULTS. If you pick ANOTHER way of implementing the results of programming, you end up with another method of implementing it, but the end result should be the same: runnable functionality.

Forget 'OO', C#, loops, if then else and other program language related elements. Think in what a program should DO, and image the formulation of those functional elements in readable diagrams which can be drawn easily. Imagine then that those diagrams are fed to a tool which produces an executable. Such a tool can exist (there are already several btw) of hundreds of smaller similar tools. No programming language, no if then else for next switch case while wend, just a model as input and executable code as output.

Diagram quicksort for yourself, not in terms of C or VB, but in terms of plain logic. It's very easy.

Frans Bouma

# re: We're a labeled group now!@ Thursday, July 03, 2003 4:12 AM

"I also think that generating entire applications is rediculous and will never happen. What will happen is that things will continue to be abstracted to higher and higher levels, but at the same time requirements will become more and more complex."
Two mistakes. One is that you can now think it is rediculous that generating a whole application is silly, but perhaps you should use MS Access for a change and build an application with it. 10 to 1 you don't need a single line of code. In the future this will only expand, because if you focus on FUNCTIONALITY and the end result, an executable program (or better: a set of logical components glued together with logic), you'll see that hammering in the code by hand is nothing more than a (often very bad) way of translating the functionality descriptions into a programming language which is transformed into another programming language and so on till executable instructions are produced. Now, the mistake is that you shouldn't follow the same route when you want to generate executable instructions from functional descriptions. You should follow to route which makes it possible in the most elegant, fast way.

The other mistake is that although applications tend to become more complex as a whole, this is not a delimiter for using code generators at all. The reason for this is that if application complexity was a delimiter for a computer, it certainly would for a human. People forget that you can build the most complex applications with the most simple logical building blocks. Once logical elements which contain ready to use functionality are available for generators, you have a layer of elements you can address from within your generator. If you can then generate new logic from your generator with those blocks, you get new blocks, new functionality you can re-use.

Nothing complex at all. Step aside from the programming language paradigm, generators shouldn't think in a language that is ment for humans.

Frans Bouma

# re: We're a labeled group now!@ Thursday, July 03, 2003 4:24 AM

In the late 80's, 4GL was so hot. But the problem all the time was that the last 20% of the apps were actually hindered by the 4GL tools so the total result was often not very good at all. (I know, evolution and development...<g>)

And talking about Access, that gives me several really bad flashbacks from old applications of mine... Brr...

Even so, I guess you have a good point. Just as everybody else writing comments here.
:-)

For now, code generation serves me really well when they spit out code too.
:-)

Best Regards,
Jimmy
###

Jimmy Nilsson

# Eric J. Smith's Weblog@ Thursday, July 03, 2003 4:26 AM

Eric J. Smith's Weblog

TrackBack

# re: We're a labeled group now!@ Thursday, July 03, 2003 5:11 AM

Does code generation add another tool to my arsenal? Most certainly. But will it ever replace the bulk of my work? Absolutely not.

First off, for my job, source code is an absolute must. This is not negotiable. I'm not some entry level grunt, I'm the go-to guy when nobody else around here knows how to accomplish something. Jimmy put it very well. Currently I'm wrestling with SAP.... let's see, can I declare a PARAMETER in my ABAP program and create a simple selection screen? Sure. But when I wish that selection screen to ONLY contain plants which are designated as shipping points for a portion of one division, AND this varies depending on authentication.... 4GL can't cut it.

Another point here. Ever see the monstrosity of code the ABAP table grid wizard gives you? Yeah right. Since this code generator has no clue what things I need to accomplish with this grid it has to create each and every hook possible - leaving me to wade through the various sections of code to whittle it down to something maintainable.

Which brings me to my final point. MS Access? ROFL. Forget about the murderous SQL it automatically creates for queries. Forget about the pain in the butt scalability and truely robust security are. Just look at this: what's the outcome of all this code generating?

Yes, it DOES simplify many things. (I began by saying there is a place for code generating.) But it also has a truely disasterous effect....

Ever try to maintain a website written by some secretary who took a FrontPage course and so now deems themself a website developer? MS Access is like that. These non-technical people tend to know just enough to make themself dangerous. TO me, that is the REAL cost of code generation.

Dave

# re: We're a labeled group now!@ Thursday, July 03, 2003 5:23 AM

Dave: Ah, so current implementations of 'generators' are an argument why it will never work? MS Access was an example, a metaphore.

I developed in a 4GL for 2 years, I know what it is like, and I also know that it is stupid to not use a 4GL or a generator when you are developing an application which is database driven (and... whoa, that's about a hell of a lot of applications)

Your example about frontpage illustrates enough: "These non-technical people tend to know just enough to make themself dangerous. TO me, that is the REAL cost of code generation.". Then you really do not understand what I'm talking about. The attitude illustrated in your remark is what I refered to with 'Elitism'. Programming should be possible for everyone who can think logical and can design software. Today it's only possible for people who know their way in a given IDE/Editor, a language, some API's etc. (in other words: stuff you can look up).

Why should a 'technical' person be necessary to create a webgui? I don't see that. Today it is necessary because of the crappy state of most tools, however in theory it shouldn't be. That's not because the concept of a generator sucks, but because the people who wrote the current crop of generators did not understand what a generator should do or they made it that way so the market would buy it, otherwise it was too far fetched.

Frans Bouma

# re: We're a labeled group now!@ Thursday, July 03, 2003 6:15 AM

That was my point, source code will never go away..just like the fax machine.

But then again time will tell, like it always does.

Ebenezer Ikonne

# re: We're a labeled group now!@ Thursday, July 03, 2003 6:20 AM

Sourcecode will go away, but when is a blur of course. I think the first places where it will be used less and less is in the average business apps which, excuse me, are most of the time structured the same. And then eventually the other parts. I don't see humans hammering code in 2100.

Frans Bouma

# re: We're a labeled group now!@ Thursday, July 03, 2003 1:43 PM

Frans, to be honest that is that first time in 25 years I've ever been accosed of elitism. :-)

Seriously, to be totally objective, code generator - and I already said this - have their place. But they most certainly are not the be all or end all. Exactly what high level concept is so dramatically new here? Nothing. Before .NET OO you had 4GL. Before 4GL you had MS Access. Before MS Access you had 3GL. SO on and so forth.

Truely eliminating the need for people to write programming code will simply never happen. Never.

So what does this mean? It means that the better a code generator becomes, the more dangerous someone who doesn't understand why a code generator works becomes. Right now I have to deal with people who have no clue why they shouldn't just import their 20 column spreadsheet into MS Access. I mean "it works", roght? Normalization? Fergitaboutit.

Can you optimize code generators to (a) make my job as the technical lead on a project easier and (b) eliminate costs of having someone fresh out of college who can't do anything but write simple SQL? Most definitely. But there ain't no free lunch. There are costs. And those costs sometimes pile up on guys like me.

Elitism? No way. Realistic. If code generators - and let's agree right now this concept has existed for decades now - were realistically as great as you claim, then why hasn't one come along now to eliminate my job?

Do I believe my job in it's current capacity will exist in 2100? Nope. But not because of some code generator, rather, something much more simpler.... evolution.

Dave

# re: Serious SqlServer security problem: Microsoft's state of denial@ Thursday, July 03, 2003 3:57 PM

I think discussion missses two important facts:
1. Problem with integrated security is the way challenge/response works, i.e. passing challenge from web server to SQL which is not a domain controller does not work. However, there is a way to pass credentials securily (including *nix boxes, mind you). It's called Kerberos and 2000/2003 servers do support it.
2. In large scale implementation where people are concerned with SQL administrator having access to web server and vice versa, I think the solution would be to move your data access to a separate box and use .NET remoting.
Just my 2c
Georged

George Doubinski

# re: We're a labeled group now!@ Friday, July 04, 2003 4:16 AM

May I ask, what will be used to "create" these code generators. Do you envision a time when there will be a generator for every problem domain that exists?

Ebenezer Ikonne

# re: We're a labeled group now!@ Friday, July 04, 2003 4:24 AM

What is used to create them? Normal programming languages. Like normal programming languages are used to create compiler generators which then generate themselves based in the input of an (E)BNF syntaxis specification.

I don't know when it will be that for every problem domain there will be a generator. If you look at the level of stubborness that is in the developer community at the moment for adapting even dumb generators, I think it will take a long time before the majority of developers is chosing a generator over the option to hammer it all in by hand.

Frans Bouma

# re: XBOX's 4th of july@ Friday, July 04, 2003 5:04 AM

I agree. Hardly a security hole, but an interesting trick. Linux on an Xbox - who'd have thought? :)

Doug Thews

# re: Serious SqlServer security problem: Microsoft's state of denial@ Friday, July 04, 2003 5:15 AM

What you're talking about is something like Passport, where the system (or SQL database) sends you off to a service to authenticate, and you either come back with a valid key to enter, or not.

So, you could develop your own "Give Me My Connection String" web service that handles connection strings per app (if that's the way you do it). You use HTTPS and your app's authentication credentials (which can be compiled as part of the code - they shouldn't need to be changed). Then, get back your connection string.

I agree that this is not integrated and what you're thinking about (because it introduces a 3rd party), but it eliminates the need to store connection strings as strings anywhere on the web server.

Doug Thews

# re: Whoa, 33 today!@ Sunday, July 06, 2003 9:50 PM

Happy birthday Frans !

Francois Verbeeck

# re: Whoa, 33 today!@ Sunday, July 06, 2003 10:35 PM

Congrats!

Damn, I remember when I was the youngest among all I met at work... :-)

Jimmy Nilsson

# re: Whoa, 33 today!@ Sunday, July 06, 2003 11:17 PM

Happy Birthday!

Roy Osherove

# re: Whoa, 33 today!@ Sunday, July 06, 2003 11:38 PM

Thanks all! :)

Frans Bouma

# re: Whoa, 33 today!@ Monday, July 07, 2003 12:09 AM

Happy birthday! Well, I turn 29 today ... but somehow feel like 33 ;-)

Christian Weyer

# re: Whoa, 33 today!@ Monday, July 07, 2003 12:52 AM


Happy Birthday! :)

P.S. Some portion of cake still there? :)

MM

# re: Whoa, 33 today!@ Monday, July 07, 2003 1:44 AM

Happy Birthday.

whoami

# re: Whoa, 33 today!@ Monday, July 07, 2003 1:57 AM

Happy Birthday! You're 5 days after me but much younger-)

Sam Gentile

# re: Whoa, 33 today!@ Monday, July 07, 2003 3:08 AM

Congratulations :)

Zef Hemel

# re: Whoa, 33 today!@ Monday, July 07, 2003 3:30 AM

Just started subscribing to your blog last week. Good stuff. Happy birthday.

Justin Bigelow

# re: Whoa, 33 today!@ Monday, July 07, 2003 7:15 AM

Happy B-day!

Is that cake chocolate? If it is, can I send you my (snail)address?<G>

Chris Frazier

# re: Whoa, 33 today!@ Monday, July 07, 2003 7:23 AM

Thanks again all :)

Oh, and about the cake, of cooouuuurse nothing is left. :D :)

Frans Bouma

# re: Whoa, 33 today!@ Monday, July 07, 2003 9:49 AM

Congrats!

Paul Gielens

# re: Re: Am I the stereotypical VB Programmer?@ Tuesday, July 08, 2003 5:16 AM

Well stated

Greg

# re: Re: Am I the stereotypical VB Programmer?@ Tuesday, July 08, 2003 6:49 AM

Only in terns of VB versus C# is your argument valid. But I say if J#, COBOL and others can write IL that runs against the CLR (and _that_ is the _only_ relevant thing in this discussion when you get down to it) than why not VB too?

So VB is verbose. So VB originally was to be the RAD tool. Since VB4 it has been much more than that. Do I understand the inner workings of the Win32 APIs, COM/IDL? Do I understand the higher level concepts of OO, relational database design, threading and scalability? Sure do - and they are the cornerstone of my career path.

So C++ can do things more easily codable than VB regarding some of those. That never made me wish to wade into it. While not the best language, VB did allow me to develop clean maintainable apps that did all this.

IMHO, MS did the right thing by allowing me to write to the System Class, use ADO.NET and design multi-threaded apps. It all comes down to one thing only.... does a programmer understand how to use all the tools his/her particular language has?

Dave

# re: Re: Am I the stereotypical VB Programmer?@ Tuesday, July 08, 2003 7:33 AM

Frans, Thanks for explaining. Your post was enlightening, and I'll be the first to admit I did not know (or did not think of) much of what you write. All but the part about VB.Net being redundant. I'll go with Dave on that one, but that's a different story :)

Roy Osherove

# re: Re: Am I the stereotypical VB Programmer?@ Tuesday, July 08, 2003 8:14 AM

I agree with you. I'm from the C side of the fence, but I've done some VB programming the last few years. I know some VB developers that felt threatened/afraid of the change from VB to VB.NET, and they were even more afraid of C#. I feel that MS created VB.NET so that they would not lose the large pool of VB (larger than C++) "developers" out there. I don't understand why VB developers are so tied into their language, when I bring up C# they get defensive. On one hand I think that VB developers can create products faster and on the other hand I feel that they are lazy and unmotivated to understand the "why" not just the "how" of software development.

Phil

# heLP .Net Blog@ Tuesday, July 08, 2003 10:24 AM

heLP .Net Blog

TrackBack

# ISerializable@ Tuesday, July 08, 2003 10:24 AM

ISerializable

TrackBack

# re: Re: Am I the stereotypical VB Programmer?@ Tuesday, July 08, 2003 12:03 PM

Now, to be straight about it, I dabble in C# and will continue to. I've never bee afraid to learn new ways or languages. I used to code in both Assembler and Fortran, but love the RAD-ness of VB. But I do know of many VBers who have a very hard time with the .NET 'evolutions'. LOL!

Dave

# re: Re: Am I the stereotypical VB Programmer?@ Tuesday, July 08, 2003 11:21 PM

Nice article, and I can add another reason why i don't like the With statement; because it encourages people to write things like:
With A.B.C.D
myVar = .SomeVarFarAwayThatShouldntBeAccessedDirectly
End With

In fact, that is what i dislike about VB.Net the most, the fact that it enables people to cut corners where they aren't supposed to (i.e. On Error Resume Next)

Peter Vervoorn

# re: Re: Am I the stereotypical VB Programmer?@ Wednesday, July 09, 2003 11:13 PM

Um, I hope it's not too cynical to suggest that a big reason for introducing VB.NET may have been the claimed 3 million VB programmers out there. That's an awful lot of potential upgrade license fees....

Mike Woodhouse

# re: "Framework-Hell"-solution is here: ISV's can upgrade to VS.NET 2003 without pain.@ Thursday, July 10, 2003 6:50 AM

Frans,
What if the problem doesn't occur on the when I run my program on my machine, but when I tranfer the .dll to my website, then I get the problem message?

kreuzmarket@bluebon.net

Leeman Schmidt

# re: LLBLGen v1.21 has been released! (Mostly bugfixes)@ Saturday, July 12, 2003 6:01 AM

Why no enhancements made by gotdotnet'ers? I'm sure where clauses on each field rather then FK's would be much appreciated.

Further, thnx for the ongoing support and fixes! Heads up...

Paul Gielens

# re: LLBLGen v1.21 has been released! (Mostly bugfixes)@ Saturday, July 12, 2003 6:06 AM

The reason is simple: my codebase wasn't in sync with the gotdotnet codebase. I never included Lewis' updates for the where clause on each field because I found that a little too much (consider 50 tables with each 10 fields... ouch :) ).

Frankly, the workspace effort is a bit of a dissapointment, since not a lot has come out of it, but alas, it's freeware written in spare time :)

Frans Bouma

# re: Don't try to re-invent the browser, please.@ Sunday, July 13, 2003 10:20 AM

Here, here, Frans. I posted on this topic today (see link), and I mostly agree, but I think there is a real syngery possible (God I hate that word, but it actually applies) combining the browser chrome and HTML/CSS with the CLR. If standalone forms would have been enough, Java would have won long ago, but HTML has a decided advantage in layout flexibility (and widget beauty, but I'll stay away from that). HTML forms and toolbars and really suck, but so does Java and WinForms when you need to design a long form with hierarchal datagrid-like properties. The best solution will be to run both in a seamless browser window (w/ or w/o the browser toolbar, just like pop-up windows now), which will overcome the web issues of limited form widgets, fixed positioning, ugly scripts, and server round-trips without sacrificing the things people *like* about browser interfaces.

Richard Tallent

# re: About code generators / generating code@ Tuesday, July 15, 2003 6:29 AM

I couldn't agree more here: "code generator is the future".

btw, when are you planing to release llblgen Pro. I can't wait for that!
Do you have an estimative month?
Will you give the sourcecode at the same price?

thanks,
Matias

Matias Woloski

# re: About code generators / generating code@ Tuesday, July 15, 2003 6:50 AM

Matias: I hope to be finished with it at the end of august 2003 :)

The system is extensible in a lot of ways: code is generated using templates plus the steps the generator takes are configurable using task definitions in an xml file which bind tasks (f.e. directory creation) to an assembly and class which performs hte task). You can then add whatever you like as custom task, using your own assemblies, f.e. get old sources first from a sourcecontrol system or whatever :). We haven't planned source control release for a price, but perhaps we open up the source of the runtime library for licensees.

Frans Bouma

# re: It's not Visual SourceSafe's v^Hfault@ Wednesday, July 16, 2003 12:52 AM

Good article.
We have a mantra here: The first place you need to install source control is in the developer's mindset.

Duncan

# re: It's not Visual SourceSafe's v^Hfault@ Wednesday, July 16, 2003 5:08 AM

That is a very interesting read...

For me, one of the most disappointing things about SourceSafe is that while the IDE was improved so much between VS6 and VS7, and SourceSafe was barely touched.

The last two (fairly large) projects I've been on have used SourceSafe and I've had similar experiences both times. When the project is in its early stages, SourceSafe works fine. When the project matures, and you start to need more complex functionality from your SCM, it seems that SourceSafe just can't cut it.

I think one of the biggest problems I have with SourceSafe is the lack of promotion groups, (ie. to support work on multiple releases at the same time.) Sure, you can hack something together with sharing and labeling, but its just too messy in my opinion.

As far as I know, MS doesn't use SourceSafe (nor should they for the size of their projects) -- so much for eating your own dog food.

I have not had a chance to check out Vault, but it sounds promising.

ps. If anyone is looking for ideas, I want a SCM that will reject a check-in if they don't compile/pass unit tests. That would be very nice.

Don McNamara

# re: Serious SqlServer security problem: Microsoft's state of denial@ Wednesday, July 16, 2003 5:39 AM

Isn't this where serviced components come in handy? Only the credentials of the COM+ application should be able to connect to the database.

The ASP.NET web application can run with less permissions on the system then the COM+ application.

Ramon Smits

# re: It's not Visual SourceSafe's v^Hfault@ Wednesday, July 16, 2003 6:16 AM

I just finished writing an article that should be appearing in September's issue of Pinnacle's Hardcore Visual Studio.NET on making the most of VSS and I agree that, when used for it's intended purpose, VSS works well. It does have some drawbacks not mentioned here.

1. It uses pretty outdated technology. (ex. INI configuration files when it could use something like XML)

2. It's performance over VPN and remote connections in general really sucks. I wouldn't tell anyone to use it over VPN...it slows to a crawl most of the time. If you ARE going to use it over VPN, disable some features you probably won't use like Shadow Folders, Journal Files, and Project Access Rights. The most important feature to enable for VPN users however isn't even configurable from the VSS client. You have to edit the srcsafe.ini file and set CP_OnSelection to False. Normally whenever you click on a folder (a project or project grouping level) VSS performs a selection operation, which can take a while over a slow remote connection. By setting CP_OnSelection to no, users can drill down in the project hierarchy and just double-click or hit Enter when they find the folder they want to actually select, not having to wait a while for each level they expand.

3. It's integration with IDE's is less than reliable. How many times have you got the "Failed to reload project" message or checked out a file only to be told you couldn't edit it seconds later? Stuff like that bothers developers and I'm guessing it would only take someone at MS a week or so at the most to fix.

4. The way it performs "diff" checking is just slow. Vault really spanks the pants off of VSS in this situation. Vault's use of delta's is much more efficient. Also, use of some sort of data compression technology would be nice to help speed things up.

Like you've touched on - I think most people use VSS withouth really knowing the tool that well at all which isn't VSS's v-Hfault at all. I've talked to some of the VSS team at MS and like Don said, a good share of people at Microsoft don't use VSS. They use a command-line tool called "Source Depot" which I believe is a variant of CVS. I still use VSS for some things but have tried Vault and just find it easier to work with as a SCM. Why Microsoft hasn't tried to buy SourceGear yet or at least offer their SourceOffSite product for free with VSS makes me wonder how much MS really cares about what people think of VSS.

Ok, I'm done ranting.

Jason Mauss

# Darrell Norton's Blog@ Wednesday, July 16, 2003 6:33 AM

Darrell Norton's Blog

TrackBack

# re: It's not Visual SourceSafe's v^Hfault@ Wednesday, July 16, 2003 9:21 AM


Sorry Frans, but VSS is crap. The single most important thing that a SCC system MUST do is keep source code (and all past revisions) safe. VSS's very architecture precludes this. It is a client that writes directly to a proprietary database with non-atomic commits. If a client fails in the middle of a commit, you are almost assured database corruption. I've seen it several times over the course of several years. If you only work with the 'head' revision, you are unlikely to notice, but it becomes apparent when you work with past file revisions.

It also has very poor branching and merging capabilities, both of which are important as your product matures.


You also tak about lock vs concurrent editing. Your locking model fails in a number of use-cases:

1. Disconnected editing. This is the largest area where a locking type SCC model fails. File locking does not work well in a disconnected mode, while concurrent models (Such as Perforce, CVS, Subversion, etc) work very well. Indeed, with VS.NET and VSS, it attempts to imitate a concurrent versioning system in the disconnected mode.

2. Highly contested, frequently changed files. Depending on the toolset or project, some files are 'volatile', and must change frequently, are shared accross projects or libraries, and must be changed by more than one user. A locking model does not work well here, as this will act as a block against other users performing work. The suggestion that you delegate work is often impracticle, as there is often one person who is best qualified to perform a specific type of change.

3. The suggestion that user A tells user B what changes to make is yet another form of merge, although verbal instead of toolset based. Why not let the technology handle the merge? That's what concurrent editing was designed for.

As far as scheduling work and shared resources to avoid locking problems, you may be sacrificing development speed for diminished lock contention.

I could write several thousand words on why VSS is a poor solution, but I think I'll leave it at that for now.

Jerry Dennany

# re: Get rid of the 'file' concept for sourcecode!@ Friday, July 18, 2003 10:37 AM

How would you script the builds on a machine without the IDE? Would the "elements" be pulled out of the repository to recreate the local "files"?

Robert Hurlbut

# re: Get rid of the 'file' concept for sourcecode!@ Friday, July 18, 2003 10:39 AM

No, the tools are not working on the filesystem but with code elements retrieved from the repository, f.e. by calling the repository webservice. The concept of 'file' is not used when building the software.

Frans Bouma

# re: Get rid of the 'file' concept for sourcecode!@ Friday, July 18, 2003 11:00 AM

Nice idea that would probably work well in some situations but I'm not sure how practical it would be for web applications.

andy

# re: Get rid of the 'file' concept for sourcecode!@ Friday, July 18, 2003 12:25 PM

I would have thought we'd have moved to the document repository scheme by now. I was hoping that was what's now SharePoint was going to give us.

Doug Thews

# re: Get rid of the 'file' concept for sourcecode!@ Friday, July 18, 2003 1:58 PM

SharePoint Portal Server can serve as a document repository; however, were you thinking of document == source file, Doug ?

Nino Benvenuti

# re: Get rid of the 'file' concept for sourcecode!@ Friday, July 18, 2003 2:39 PM

Have a look at some of the interactive source and intentional programming stuff at http://aisto.com/roeder/paper.

Pete

# Roland Weigelt@ Friday, July 18, 2003 3:53 PM

Roland Weigelt

TrackBack

# CVSNT will have SQL Server support soon@ Sunday, July 20, 2003 6:52 AM

I stopped using VSS a long, long time ago, not only because it corrupted my files one too many times, but because it supports file locking and CVS's free tools like TortoiseCVS and ViewCVS are much, much better. Does VSS have shared locks now? If VSS still exclusively locks files by default via VS.NET, it doesn't matter.

Money and time spent on VSS and Vault is a waste.

http://www.cvsnt.org

Tom

# And Intelligently Understood Names@ Sunday, July 20, 2003 4:33 PM

When you change a function name in "refactor" mode, all uses of that function name should then change to the new function name. That is, when a function is called, it's automatically converted into a function# by the system, and just referred to by string name for the user.

Lion Kimbro

# re: Get rid of the 'file' concept for sourcecode!@ Sunday, July 20, 2003 10:16 PM

A lot of Smalltalk implementations already work in this way - you save an image of the project, and work, class view like, with programming elements through the IDE. There is no notion of a file. I have not seen and source control systems for Smalltalk though that allow you to track back through changes to elements in the image.

Ian Cooper

# That's nothing new@ Sunday, July 20, 2003 10:28 PM

There are IDEs that work this way. Check out the Smalltalk environments, e.g. IBM VisualAge for Smalltalk or even VisualAge for Java. Working in such an Environment indeed provides many benefits when searching or following references. It's nice. I worked several years with VisualAge for Java and found it very comfortable. Much better than what JBuilder or Netbeans had to offer 5 years ago. Very sad that VA couldn't keep up with the JDK updates ( it was a closed environment hardwired to a specific JDK version). Because of that we had to move on to inferior IDEs.

Stefan Haubold

# re: Get rid of the 'file' concept for sourcecode!@ Sunday, July 20, 2003 10:33 PM

Very good feedback! I didn't know it was already common knowledge in the smalltalk world, I never used smalltalk myself...

Knowing that smalltalk IDE's have had this feature for years already, makes it even more weird why current IDE's for other languages still use the file concept.

Frans Bouma

# re: Get rid of the 'file' concept for sourcecode!@ Monday, July 21, 2003 3:15 AM

The file concept remains because so many of our existing tools assume it. To switch, you have to provide the world with a *complete* toolset that works as well as the set we've got now.

Oh, and before that, you have to somehow create widespread dissatisfaction with the status quo.

Eric Sink

# re: Get rid of the 'file' concept for sourcecode!@ Monday, July 21, 2003 3:22 AM

Eric: the current concept of a 'file' is already a view of sectors on a harddisk. With the plugin system of the filesystem stack you can create a FS driver for the repository if you truly want backwards compatibility.

It's true that if it ain't broke, don't fix it is written all over it, but I also think that when a major IDE vendor (like MS) introduces it, plus with all the benefits that come with the concept, I think there will be a market for this. But it's a long road, admitted.

I wonder though how MS will set up WinFS in longhorn: after all it's a database which provides views ('files') of the objects inside the database, which can (IMHO) be compatible with the concept of the code element of my blog.

Frans Bouma

# re: CLS Compliance testing is useless@ Monday, July 21, 2003 6:53 AM

unsigned integers are NOT CLS compliant. The C# compiler is correct.

"Most of the members defined by types in the .NET Framework class library are CLS-compliant. However, some types in the class library have one or more members that are not CLS-compliant. These members enable support for language features that are not in the CLS. The types and members that are not CLS-compliant are identified as such in the reference documentation, and in all cases a CLS-compliant alternative is available. For more information about the types in the .NET Framework class library, see the .NET Framework Reference."

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

Jesse Ezell

# re: CLS Compliance testing is useless@ Monday, July 21, 2003 7:01 AM

Well, the UInt32 structure exposes an uint member. All fine, but why isn't an Int64 used internally and externally?

When you have these kind of types in your core library, you define more than 1 library and not one: the CLS compliant one and the non-CLS compliant one.

It's also bogus testing. You test for type compliance, but what does that mean? Several types in the .NET library expose overloaded operators. These are PART OF the type. However, not usable in f.e. VB.NET.

Frans Bouma

# re: CLS Compliance testing is useless@ Monday, July 21, 2003 7:15 AM

It is fine to have non-cls compliant members, you just need to make sure that everything can be accomplished without them, just in case a language does not support one of your method signatures.

IMO, VB does to much in the background and doesn't give enough control over this type of stuff. I would be wary of using it for such projects. Apparently, the MS guys didn't think VB should be used for creating CLS compliant programs either, or they would have supported the CLS compliant attribute... So, moral of the story, use C# if you are working projects where you are concerned about Types. VB.NET is very loose with them (I guess some people do actually consider that a "feature," but I'm not one of them :-) ).

Jesse Ezell

# re: CLS Compliance testing is useless@ Monday, July 21, 2003 7:23 AM

'a' language... I think that definition is too vague. 'a MS language' is better. After all, if I define a new language for .NET, and it doesn't support 64bit integers, it can't use a lot of code since Int64 is CLS compliant but not according to my new language. :)

So, VB.NET apparently forced this uint != CLS Compliance crap to exist. How thoughtful.

Frans Bouma

# re: CLS Compliance testing is useless@ Monday, July 21, 2003 7:32 AM

Jesse,

To be clear, yes, you can use non-CLS types in your application. However, if you want to be CLS compliant, you can't publically expose any of those types.

Patrick Steele

# re: CLS Compliance testing is useless@ Monday, July 21, 2003 7:34 AM

Then your language isn't CLS compliant :-). However, just because it didn't have a "long int" or some language specific version of int 64 doesn't mean it wouldn't work. It should be able to use Int64 directly if it supports even the most basic type stuff from the CLI.

Jesse Ezell

# re: CLS Compliance testing is useless@ Monday, July 21, 2003 7:34 AM

Frans,

VB.NET really can't use unsigned ints. Sure, you can define vars of type UInt32, but once you try and do any operations with them (adds, substracts, even assignement) VB.NET complains because it doesn't know how to convert 'ints' to 'uints'.

Patrick Steele

# re: CLS Compliance testing is useless@ Monday, July 21, 2003 7:38 AM

Patrick, as long as you have CLS compliant ways to do everything, it doesn't matter much whether the rest is fully compliant (IMO). CLS compliance is a good test to make sure you won't run into any hairy situations, but I don't see any reason to force yourself to ONLY use CLS specific stuff if you run into a situtation where it makes sense to do otherwise.

Jesse Ezell

# re: CLS Compliance testing is useless@ Monday, July 21, 2003 7:43 AM

Jesse, I think we're in agreement on this stuff.

I think CLS-compliance really only needs to be achieved by component/tool authors. If you're just coding an internal application or something simple for yourself, who cares about CLS-compliance? It's only an issue if you want to make a library or utility that will want to integrate with another .NET language.

Patrick Steele

# re: Get rid of the 'file' concept for sourcecode!@ Monday, July 21, 2003 12:02 PM

I've used VisualAge for Java, got to say, it really sucks when you actually want to get at the files - web applications are the most obvious example. It becomes very tricky when you have to work with lots of files - like images, stylesheets etc...

Scott Galloway

# re: The Blob!@ Tuesday, July 22, 2003 8:49 AM

Hahahaha...

I wasn't drinking, but why didn't you say I had to print this out and read it on the toilet? No I've shitted my pants from laughing!!! :)

Dennis v/d Stelt

# re: Get rid of the 'file' concept for sourcecode!@ Tuesday, July 22, 2003 9:04 AM

When using Eclipse with Java, mostly you are dealing with projects, packages, classes, interfaces not folders and source files.

Yiyi

# re: Re: Am I the stereotypical VB Programmer?@ Wednesday, July 23, 2003 9:51 PM

<<an editor that helps you more than any other editor on the planet and with a compiler that is faster than any C or C++ compiler out there>>

I think you are talking about Delphi.

<<tortured for years with C, Pascal>>
when was the last time he tried Delphi. It is still the best dev tool for win32.

I am new to this blog but a long time programmer in vb that switched to delphi 3 or so years ago.
VB.net is just included to keep the .net learning curve down for the beginner Vb programmers . i am sure anyone with some real experiance will move to C# ,after all it was written by the same guy that wrote Delphi and is the best thing (along with the framework) that microsoft have done for years. c# is going to be huge.

Nice Guy Eddie

# re: So Microsoft, when is VS.NET 2002's service pack released?@ Wednesday, July 23, 2003 10:53 PM

What more do you REALLY need to see that MS is committed to their customers? Geez man. You sure do complain about MS a lot. Ever hear the phrase "biting the hand that feeds you?"

You could get a lot more done with MS if you had a more positive attitude. They're still figuring some of this stuff out, just like we are.

Robert McLaws

# re: So Microsoft, when is VS.NET 2002's service pack released?@ Wednesday, July 23, 2003 10:58 PM

What's wrong with critizism? I'm not biting the hand that feeds me. If I can't ask Microsoft why there isn't an SP for VS.NET 2002 released, the world really is in trouble.

Frans Bouma

# re: To Entity.Save() or not to Entity.Save()?@ Thursday, July 24, 2003 1:21 AM

YOu are right.

More crreclty. Jimmy is wrong.

He should have handled both forms with different transactions, diferent objects, different caches etc. Then he never would get the problem, and both things could be commited separatly.

Thomas Tomiczek

# re: To Entity.Save() or not to Entity.Save()?@ Thursday, July 24, 2003 1:24 AM

The problem with one cache per appDomain still exists though if you use separate caches. (or to be more precise: when a cache is used, it will fall apart when multiple appdomains are accessing the same shared repository)

Frans Bouma

# re: So Microsoft, when is VS.NET 2002's service pack released?@ Thursday, July 24, 2003 2:33 AM

Hey Robert, since when is being critic bad???
Do you eat everything your holy "hand that feeds you" decides to give you?

Fabrice

# re: So Microsoft, when is VS.NET 2002's service pack released?@ Thursday, July 24, 2003 2:44 AM

Frans,

Can you go into a little more detail about what you don't like about VS 2003? We are about to make the switch...

Thanks
Don

Don McNamara

# re: So Microsoft, when is VS.NET 2002's service pack released?@ Thursday, July 24, 2003 3:25 AM

Don: if you're developing in VB.NET, I'd recommend you read Greg Robinson's blog and his blogs about vs.net 2003 and VB.NET.

In C# (which I use) I have problems with intellisense and the debugger. The debugger is sometimes failing to show membervariables but shows empty rows. Debugging is then useless. This happens to me 2 a 3 times a week. I have to restart the machine and even then it is kind of random.

I discovered that I don't use the features that come with vs.net 2003 that often. The intellisense 'prefered entry' feature isn't always useful and the stubbers of interface code is useless, simply because it doesn't copy the comments you specify with the interface declaration.

Frans Bouma

# re: So Microsoft, when is VS.NET 2002's service pack released?@ Thursday, July 24, 2003 3:33 AM

Microsoft's support for current customers of the .NET Framework 1.0 and VS.NET 2002 is a complete load of *crap*!

First off, they don't even acknowledge a fraction of the bugs that are in the products. The only thing coming out of Redmond, as always, is upgrade! upgrade! upgrade! That will fix all your woes. Yeah, right. Give me a break M$.

Let me tell you something Microsoft. I'm a consultant who works for major companies who adopt .NET technologies. It's *amazing* in a lot of these shops that they adopted .NET in the first place. Those who have, for the most part, have adopted version 1.0 (and if I'm lucky, SP2 for the framework).

Most don't have any interest at all upgrading to the next version of VS.NET simply because they want to take the "wait and see" approach. You know, M$, the same one they want to take with your operating systems (and that's why Win2k and NT4 is so widely used, despite the all the new features of XP and Win2k3).

If we could get a fricking service pack with *real* fixes in it (what the hell was SP1 for the framework about, anyway? what a waste), then at least I could work hard to convince the management types to keep up-to-date with the latest fixes (usually because they do it out of habit to fix all the bugs in your other products).

If this is the way M$ intends to be, than I for one (and I know a lot of other developers feel this way), think it's a load of crap. C'mon M$ -- support your existing products and don't force people to upgrade to get the latest bug fixes.

M$, you've come a long way from what you used to be, but I'm afraid you're taking a step back with the (lack of) support you are giving your customers.

Load of crap

# re: So Microsoft, when is VS.NET 2002's service pack released?@ Sunday, July 27, 2003 10:56 AM

Robert,

Ever heard of the prase:
'Customer is king' ?

We don't get fed by Microsoft. MS is just one of the firms that deliver IDE's for .NET (Borland is another one).
If you want to use a good product, then critizism is a way to get things done.

If you buy a new car, wich has some production faults, but in a new edition, or a new version of that type of car, these glitches are fixed, what do you expect? You expect that they will fix your car. You don't expect that the manufacturer says: "Oh, we fixed that in our new version, if you want it fixed, buy the new version of that model".

whoami

# re: Don't try to re-invent the browser, please.@ Monday, July 28, 2003 1:30 AM

All pretty windows centric. I cannot see that the imitation of one particular proprietary form tool (that is what mono is intended to be) shall be the bright future. I rather see this as an argument for independant open source form languages. XUL could be it.

Another question is, how comes that it is often easy to convince use to use the so restricted browser GUI. Concepts like collecting favourites and sending links via e-mail to someone else would all needed to be reinvented by a GUI of the future.

Frank Nestel

# Getting rid of the 'File' Concept for Source Code?@ Tuesday, July 29, 2003 2:58 AM

TrackBack

# VSIP Corroboration@ Tuesday, July 29, 2003 7:11 PM

TrackBack

# Hear hear!@ Thursday, July 31, 2003 8:40 AM

Very much agreed. The (language)discussion is going loud around here these days. This is a point I'll definately use in the office wars:)

Mads Nissen

# re: Why Edit & Continue is a bad thing@ Thursday, July 31, 2003 9:07 AM

Completely disagree. If I'm testing my application and an exception fires because, say I'd used the wrong type of slash in XPath, then I want to fix it, then carry on. This results in a quick, trivial change, rather than the 30-40 seconds required to stop the debugger, let VS.Net rearrange all it's docked windows, make the change, fire up the debugger. Navigate through the application to the same spot the exception fired so that I can carry on testing from where I left off.

I would agree that pure logic should not be built on the fly - it should take a more formal approach, but stupid coding mistakes need to be squashed rapidly while testing your code.

Unit Testing (as in xUnit) doesn't help in most of these situations if the coding error was part of the presentation layer.

I've written parsers, web apps, win apps in C# all with NUnit during the last 3 years and regularly wish I had E&C.

RichB

# Why Edit and continue is a GOOD thing@ Thursday, July 31, 2003 9:25 AM

TrackBack

# re: Re: Am I the stereotypical VB Programmer?@ Thursday, July 31, 2003 3:26 PM

With is a bad construct because it discourages developers from refactoring their code. If the type expression the With statement refers to contains one or more periods, then the developer should really be thinking about pushing the With-block into the object that it operates on.

In other words, the method with the With-block has too much intimate knowledge of the other classes specified in the With statement type expression.

Having said that, I believe that refactoring should not be a prime concern for any VB developer - I believe that VB should become a much more RAD language used as very rapid glue code for components provided by other vendors. And because of this, I believe that With does indeed have a place in the VB arsenal.

BTW - I was a VB-dev before VB had the With statement...

RichB

# re: Why Edit & Continue is a bad thing@ Thursday, July 31, 2003 5:23 PM

Hehe VB crap... debug, change your program, serious hang, terminate the app and IDE shuts down as well.

BOOM, al changes are lost... what the hell did I just do?

Welcome in the world of crappy programming pratices. Please MS leave Edit & Continue out of C#. Disfunctional coding pratices should have their own disfunctional language (VB), let it not be C#.

My 2c

Paul Gielens

# re: Why Edit & Continue is a bad thing@ Thursday, July 31, 2003 6:20 PM

Blame the languages for good and bad all you want, but it still all depends on the person behind the keyboard! ;)

HumanCompiler

# Frans Bouma's says Edit and Continue is a bad thing@ Thursday, July 31, 2003 9:21 PM

TrackBack

# re: A pattern in patterned confusion.@ Friday, August 01, 2003 7:17 AM

I completely agree Frans. In fact, one of the requirements for being a design pattern is that it *must* be used by more than one group of people. You simply can't invent something new yourself and call it a pattern unless it's something other people have come up with as well.

Thong Nguyen

# More on the badness of E@ Friday, August 01, 2003 7:29 AM

TrackBack

# re: More on the badness of E&C and how to debug software.@ Friday, August 01, 2003 11:40 AM

Very good points and reasons for NOT using Edit and Continue. This is exactly what unit testing has helped us get away from.

Robert Hurlbut

# re: Why Edit & Continue is a bad thing@ Friday, August 01, 2003 2:09 PM

If you think it's bad, don't use it. But put it in there for the people who like it. I want freedom, not constraints imposed on me from the Best Practices Police.

Charlie Zimmerman

# re: Why Edit & Continue is a bad thing@ Friday, August 01, 2003 3:40 PM

I am kind of amazed at the negative reaction that people are showing for EnC. I don't understand it. How does fixing a stupid bug while debugging and without recompiling encourage bad programming practice? That kind of thing happens to everyone no matter how much forethought you put into your design.

Tosh Meston

# re: Why Edit & Continue is a bad thing@ Friday, August 01, 2003 3:42 PM

Tosh: read my other article about debugging I posted today. You'll understand why.

Frans Bouma

# re: More on the badness of E&C and how to debug software.@ Friday, August 01, 2003 7:44 PM

Frans, nice stuff!

My favourite "Plain old stupidity bug" used to be forgetting this line:

objRs.MoveNext()


:-)


Darren Neimke

# re: More on the badness of E&C and how to debug software.@ Friday, August 01, 2003 11:03 PM

This argument misses the main reason I use edit and continue. I'm an old Scheme programmer, and I just use it like a REPL. When I'm using systems that don't yet have any documentation and are just an API and a pile of messy source, it's an easy way to new up some objects, play around with them, and see how they work.

Edit and continue isn't just about bug fixing; for me, it's also about exploration.

But then, maybe I'm just an old Scheme programmer and don't know any better :-)

LarsBerg

# re: More on the badness of E&C and how to debug software.@ Saturday, August 02, 2003 11:36 AM

see:

http://www.cincomsmalltalk.com/blog/blogView?showComments=true&entry=3237275853

for my response

James Robertson

# re: More on the badness of E&C and how to debug software.@ Saturday, August 02, 2003 1:23 PM

Come on. What is edit and continue but an automation of the stop, edit and recompile under the covers. I like automation and abstraction, it saves me time. That's why I like code generators. And if you think about it, the same arguments could be applied to code genrators, so there is a bit of a contridiction here. E&C is just another tool to be used at the appropriate times. If you want to stop bad programming habbits in programmers that don't know what that appropriate time is, well then we need to attack some other features of the IDE as well. This spills over into a much bigger philisopical debate over associating ones value as a programmer with the tool that one uses - as in the statment "I am a VB programmer", or "I use code generators". If a language/IDE combination such as VB encourages the use of wizards, code generators, automation tricks, and other 'crutches' to progam without understanding what the end result is, it will get a bad reputation among more diciplined programmers that use another tool (in this case c#). Try on this statment for size "I program in notepad". What does that say? It is language agnostic - notice I didn't mention any language. It could be VB, C# or assembly. So lets assume I am programming VB in notepad. The edit, compile and debug process would be even more painful, requiring me to be even more diciplined. Why in the hell would I want to do that when I could use the IDE? Just for some macho bragging rights?

Doug King

# re: More on the badness of E&C and how to debug software.@ Sunday, August 03, 2003 5:55 AM

Doug: E&C isn't a tool you use for 'testing'. There you go wrong. If you miscoded a statement (used + instead of - f.e.) and you see that in the debugger, you fix that in the code and move on. Do you NEED the debugger to verify that the '-' you just inserted at the spot of the '+' is the correct operator? If you do, you do not understand what code SHOULD be there at that spot. That's the point. If you need E&C to verify if that fix (the '-') is correct, you are using trial and error to code you through an algorithm. That's the point I was trying to make: if you KNOW what you are doing, you can develop software WITHOUT a debugger, because you know which statements should be on which spots in which routines.

Consider this: do you think Windows kernel developers use E&C to fix bugs? Debugging OS kernels is hard (using 2 machines/virtual machines), left alone use E&C. Still people manage to create solid, working kernels. How do they do that? Solid software design.

It has nothing to do with bragging rights. If someone says he develops software in vi or notepad I'd say he's a fool. However, every developer should KNOW/realize why he is using a given tool. Only THEN the developer can truly unleash the power of that tool, because only then the developer knows WHEN to use the tool.

Frans Bouma

# xL8 - Grant Carpenter@ Sunday, August 03, 2003 10:14 PM

xL8 - Grant Carpenter

TrackBack

# re: So Microsoft, when is VS.NET 2002's service pack released?@ Monday, August 04, 2003 1:14 PM

yeah, im looking for a patch to vs2002 right now, but i guess there isnt one.

I like using MS's tools, but their customer service blows. im really sick and tired of it too. VS.net is full of bugs, but they dont seem to care. it really pisses me off.

how are we supposed to get work done on time when we spend all our time trying to work around the half-assed, piece-of-crap utility known as VS.NET?

shane

# This seems an overreaction@ Monday, August 04, 2003 10:38 PM

It is easy to dismiss the plain stupidity bugs, but when working on a mature product, a large amount of time spent debugging is spent on such bugs. If you add a new method and it gets halfway through a million steps of exiting code (some sort of an engine), it is a heck of a lot easier to fix and continue than to stop and get back to where you were. Granted, that is also a reflection of the tools available, but what if several human interaction steps are required to get to that point. Recreating them over and over to reproduce the situation rather than using Edit&Continue seems extreme.

Having said this, note that I don't have or use E&C in the compiler I have now, but I think the concept is well founded. The implementation is another question, and I do think it is a fair argument to say that there may be better walls for the developers to throw themselves at.

Ben Langhinrichs

# re: Why Edit & Continue is a bad thing@ Tuesday, August 05, 2003 10:24 AM

I've developed with tools that don't have E&C and I can tell you this, having it saved me more time than not having it. Particularly when it takes me 1/2 the time to locate and fix the problem using E&C as opposed to having to categorize and determine the cause of the bug. An application that I work on now is what's called an Allocation Engine. It's sole purpose is to perform extensive calcs against a database to provide Oil & Gas companies with the info they need to determine what was produced and what was sold. It has no user interface and hundreds of functions and objects. It is written in Powerbuilder. When a customer reports a bug to us, it can literally take an entire workday (sometimes more) to figure out where the bug is and what is causing it. In order to assist us in this, we generate trace files and insert message boxes. Powerbuilder has NO Edit and Continue. Under the same scenario, using VB6, it would have taken us roughly 1/2 the time to locate and fix the bug because some of these bugs don't pop up until after thousands of lines of code have executed and several minutes or an hour has gone by. By inserting a breakpoint (which PB does have) near the area where we believe the bug originates. We then begin stepping through the code and "watching" the values. Once we see what's happening, (using E&C) we can easily change that line, step into it, check the result and then continue on with the allocation.

The real beauty here is that "IF" you don't like E&C, then don't use it.

Keith Keller

# re: More on the badness of E&C and how to debug software.@ Tuesday, August 05, 2003 1:29 PM

Do the Windows kernel developers use RAD tools to create the kernel? :)

It's about productivity. When I see a bug, I have the ability to fix it, and continue debugging. There's no way to convince me that I didn't just save the time I spent getting to that place in the application.

Rather than reading through your algorithm in your head, why not let the computer help you? When I'm done writing some code, I spend time in the debugger stepping through it and examining what's going on. If you wrote the code and believe it was correct, chances are that if there IS an error, the "execution engine" in your head isn't going to catch it.

Stepping through the code and examining the state things is more reliable and more effective than trying to do it in your head. And it's when you're doing that that Edit and Continue is most useful.

Steve Tibbett

# re: More on the badness of E&C and how to debug software.@ Tuesday, August 05, 2003 2:46 PM

Like I said in my original comments, there is an appropriate time to use E&C as a proper time saving tool. In your scenario (kernal developers) I agree, use of E&C seems silly. But what about tweaking UI code or prototyping ideas, debugging someone else's code, refactoring, etc. E&C is just another tool that compresses the edit, compile, run-code-in-IDE cycle. If you have no need to do the last step, run-code-in-IDE, then E&C is not apporpriate. If there is a good argument to NEVER run-code-in-IDE, instead do unit tests, etc., then E&C could be seen as encouraging bad practices. I submit that this is the real crux of this debate.

Doug King

# re: We're a labeled group now!@ Friday, August 08, 2003 3:18 PM

Personally, I side with the CG’ers and buy into that vision, though I think it may take many decades--if not centuries--to get “there”. Where is “there”? To me, it is the point where over 90% of all programming is via specification rather than coding.

To those defending the need for a seasoned developer I say that they are 100% correct, but for the wrong reasons. Creating correct specifications for a code generator to generate any non-trivial application will remain a specialized skill for a long-long-time to come. This kind of executable specification becomes just another higher level of programming.

The point is NOT that code generators eliminate programming. Rather, the point of MDA, code generation, and executable-model initiatives is that (1) in the short-term they eliminate a lot of tedium (and errors) in writing with our current crop of relatively low-level programming languages (Java, C#, VB, XSLT, PL/SQL -- T-SQL, ABAP, etc.) and (2) in the longer-range vision, allow for developers to remain at a higher level of abstraction--much closer to the actual problem domain--rather than constantly dealing with the particulars of the implementation platform.

Will we always need lower-level systems programmers? Into the foreseeable future, yes, probably. However, our profession has already evolved from designing circuits and flipping switches (ENIAC), to bit twiddling in machine language (punch-cards anyone?), to assembly languages, to lower level procedural languages such as C and Forth, to OO such as C++, Java, and C# and now the massive frameworks/environments supporting business apps (J2EE App Servers/.Net). It seems only reasonable to observe that the bulk of programming will continue to evolve to higher-and-higher levels of abstraction as the tools and the basic building blocks become more refined.

Naim Ru

# re: We're a labeled group now!@ Friday, August 08, 2003 3:33 PM

One more point: remember that if you program in anything other than raw machine language, you are already using a code-generator -- the compiler or VM!

The "code generation crowd" is simply adding another layer of compilation/interpretation on top of the multiple layers which already exist. There is no reason for me to believe that this layering needs to stop at the current state-of-the-art.

Naim Ru

# Internet Explorer.NET@ Sunday, August 10, 2003 6:58 AM

In my recent articles I've explored the concept of the Universal Canvas, a term made popular by Microsoft when it launched .NET in 2000.

TrackBack

# re: Sorry for the lack of updates...@ Monday, August 11, 2003 3:02 PM

Thanks for the pointer Frans and good luck with your 'crunch-mode'! As you know, I'm very much behind with my blogging too. I have at least two blog posts that you have commented very well and which I have to write about again. In a week or two...
:-)

Best Regards,
Jimmy
###

Jimmy Nilsson

# re: Sorry for the lack of updates...@ Monday, August 11, 2003 4:47 PM

Thanks for the support, Jimmy! :) I hope the painting of the house is progressing as planned :)

Frans Bouma

# re: Sorry for the lack of updates...@ Monday, August 11, 2003 5:41 PM

Perhaps not progressing as <i>planned</i>, but at least progressing <i>enough</i>.

Ah, I found another area for applying Agile/XP. "What is the smallest amount of painting that would possibly work?"
:-)

Jimmy Nilsson

# re: Sorry for the lack of updates...@ Thursday, August 14, 2003 12:19 PM

Frans will this be a public beta?

Have you decided on a pricing structure yet?

Cheers

free4all

# re: Sorry for the lack of updates...@ Thursday, August 14, 2003 12:21 PM

The beta won't be public, but a select group of people will beta-test the betaversion. The estimated 'street' price is 170EUR excl. VAT. for a site/department license, thus 4 developers? 1 price :), and the runtime license is of course free.

Frans Bouma

# re: Stop ranting about the blaster worm@ Friday, August 15, 2003 4:52 AM

Well, +1 for you here, Frans.

I received a lot of e-mails the last few days from different Microsoft channels, providing some very useful information on the whole Blaster thing. And yes, it made me wonder why, in spite of the early availability of patches, the worm could do so much damage over the last few days.

So, I totally agree with this entry from you.

Admittedly, I always placed you more or less in the anti-Microsoft camp. I guess, that's because some of your first postings in the DOTNET-CLR discussion group of DevelopMentor, which were actually the first words I ever read from you. Back then, if I remember correctly, you'd just started developing for the .NET platform. Those first postings were quite critical and, I still think, far too agressive in their lack of nuances. So, now I'm kind of ashamed for hanging on to that first impression---and I apologize: you seem quite objective to me now.

And when MS screws up, I count on some serious ranting from you towards Redmond: just to illustrate your objectivity. ;)

Stefan Holdermans

# re: Stop ranting about the blaster worm@ Friday, August 15, 2003 4:59 AM

I started developing with .NET in march 2002 :P But I agree, sometimes ranting can be counterproductive when you want to make impressions, however even rants do get heard. I'm not in the anti-microsoft camp, however due to .NET I left the pro-microsoft camp which was a thing I never thought possible :)

It will be all right, when whidbey will be released.

I also think MS should have done more to protect users. I mean: WHY isn't there a free add-on for windows 2000 which simply acts as a firewall like in XP? They have the code already there, it's in XP, why do I have to buy an expensive firewall for windows 2000? Just to block some ports. That's the kind of thinking that's still not there in Redmond. It will be there, but not at the moment or at least too less :) Ah well.. nothing's perfect :)

Frans Bouma

# re: Sorry for the lack of updates...@ Friday, August 15, 2003 5:16 AM

I like the price Frans, I was hoping I wouldn't be priced out of the market and this sounds more than generous. I have looked at other products from thona and co but the cost is astronomical. For a small coding shop with an even smaller budget this is ideal.

Once the "select" group has finished beta testing will there be a try before you buy?

free4all

# re: Sorry for the lack of updates...@ Friday, August 15, 2003 5:25 AM

:) Yes there will be a 'demo' version available, so you can try it out. The competition costs a fortune especially when you are with 2 or more developers and they can't live up the price the ask.

Frans Bouma

# re: Sorry for the lack of updates...@ Friday, August 15, 2003 5:58 AM

Champion I have a project waiting to go but I'm holding out so I can try your software. I'm hoping this is a cure for all my DB headaches. Can't wait to try it out!

free4all@dootdoot.co.uk

# re: Sorry for the lack of updates...@ Friday, August 15, 2003 6:30 AM

I hope it won't dissapoint you :) If I won't make the sept 1 date, I'll mail you and you can get started with a preview version.

Frans Bouma

# Blaster worm blogging: whose fault is it?@ Friday, August 15, 2003 9:14 AM

TrackBack

# re: Sorry for the lack of updates...@ Friday, August 15, 2003 9:31 AM

Thanks Frans that would be great. I'm sure you'll not disappoint if your previous work is anything to go by!

free4all@dootdoot.co.uk

# re: Stop ranting about the blaster worm@ Friday, August 15, 2003 10:34 AM

<i>"If you as a sysadmin did your job well"</i><br><br>If MS did their job well, this would not have even been an issue in the first place. Do it right the first time, or not at all.

Travis

# re: Stop ranting about the blaster worm@ Friday, August 15, 2003 11:52 AM

"who needs a sysadmin with perfect software"

I'm sure a lot of sysadmins would resent that.

Without MS making the stupid and dangerous decision to have things like RPC enabled by default, sysadmins could concentrate on more important things like, well, administering the system.

Joe Grossberg

# no firewall in windows 2000?@ Monday, August 18, 2003 7:49 AM

Actually, Windows 2000 does have a free firewall. How to configure it can be read at http://support.microsoft.com/?id=309798

Stefan Mensink

# re: Sorry for the lack of updates...@ Wednesday, August 20, 2003 2:28 PM

I'm sort of in the same boat. I have a project that I would love to use llblgen pro on. If there's still room in your public beta, let me know! ;-)

bonder@digitalarcana.com

Bruce Onder

# re: Sorry for the lack of updates...@ Wednesday, August 20, 2003 2:35 PM

Bruce: it's a private beta, not a public beta, sorry :) At the moment the beta testing is going well, no need for extra hands, but thanks for the offer. :)

Frans Bouma

# re: Sorry for the lack of updates...@ Wednesday, August 20, 2003 3:37 PM

Oops, I meant to write "Private" not "public." :) Oh well! Do you imagine the beta taking much longer than two months or so?

Bruce Onder

# re: Sorry for the lack of updates...@ Wednesday, August 20, 2003 3:43 PM

Bruce: Naah we're currently very close to release candidate quality actually :) Most big bugs are ironed out in the last couple of days. What's left is documentation and the glitches that pop up in the next couple of days. :)

Frans Bouma

# re: Sorry for the lack of updates...@ Thursday, August 21, 2003 1:37 AM

Hi Frans,
I'm planning to buy it, but what do you mean with runtime license free?
You can develop and use it for free? only if you publish it on a webserver, you've got to pay?

Stijn Gysemans

# re: Sorry for the lack of updates...@ Thursday, August 21, 2003 2:28 AM

Stijn: You have to pay for a license to use the tool, and the tool generates code which targets the runtime library that comes with the tool (a set of base classes). Some competitors also ask a fee for usage of the runtime, I don't. If you have payed for a license, you can generate as much applications as you want and you don't have to pay for a runtime license.

Frans Bouma

# re: 'nGen' is NOT related to LLBLGen or me@ Thursday, August 21, 2003 5:41 AM

ventilate my experiences with this 'competitor'

I'll proof them wrong within a few weeks time


Goosebumps all over the place... good luck during the crunching period. Sounds exciting!

Paul Gielens

# re: 'nGen' is NOT related to LLBLGen or me@ Thursday, August 21, 2003 5:42 AM

Thanks Paul! :)

Frans Bouma

# re: 'nGen' is NOT related to LLBLGen or me@ Thursday, August 21, 2003 8:33 AM

Kinda odd to call such a tool just like a tool already included in .NET...

Zef Hemel

# re: 'nGen' is NOT related to LLBLGen or me@ Thursday, August 21, 2003 9:11 AM

Kick some a**, Frans! BTW, how much is LLBLGen pro (or 2.0) gonna cost? I gotta start greasing the wheels around here.

Darrell

# re: 'nGen' is NOT related to LLBLGen or me@ Thursday, August 21, 2003 9:34 AM

Darrell: 170 EURO excl. VAT for a site/department license, so one license per team. :)

Frans Bouma

# re: 'nGen' is NOT related to LLBLGen or me@ Thursday, August 21, 2003 10:45 AM

Frans, I know my team is excited about LLBLGen Pro. We hope to see it soon.

Emmet

# re: 'nGen' is NOT related to LLBLGen or me@ Thursday, August 21, 2003 7:19 PM

Like Zef I can't belieive someone would give something the same name as a tool already in the .NET framework. Maybe I should make a webcontrol called ILDASM or something.

JosephCooney

# re: 'nGen' is NOT related to LLBLGen or me@ Saturday, August 23, 2003 8:35 PM

Am I missing something here? how does the name ngen in any way resemble LLBLGen

Steve Johnson

# More on SQL Server Auto-Updates@ Sunday, August 24, 2003 11:35 AM

TrackBack

# <br> Small Query Blog@ Monday, August 25, 2003 6:50 AM


Small Query Blog

TrackBack

# re: LLBLGen Pro release date set@ Tuesday, August 26, 2003 9:58 AM

Yee haw! :)

Bruce Onder

# re: LLBLGen Pro release date set@ Monday, September 01, 2003 10:55 AM

So, it's the 1:st.. Where is it?! ;)

Can't Wait

# re: LLBLGen Pro release date set@ Monday, September 01, 2003 10:58 AM

On my harddisk :) It will be later this week, probably friday. Stay tuned. We're in release candidate 2 now, pretty close to the final product. :)

Frans Bouma

# re: LLBLGen Pro release date set@ Tuesday, September 02, 2003 8:31 AM

I'm just curious about the remoting support that will be available for the LLBLGen Pro. Will the generated classes be accessible by remotable functions and methods?

Wondering

# re: Get rid of the 'file' concept for sourcecode!@ Thursday, September 04, 2003 8:39 AM

.NET gives everything we need for something better: System.CodeDom. We simply have to build an IDE that will handle the object graph directly instead of relying on those damn flat files.

Jérôme Tremblay

# re: It's released! LLBLGen Pro is gold! The next-gen O/R mapper for .NET.@ Sunday, September 07, 2003 4:55 PM

Congratulations!

Stefan Holdermans

# re: It's released! LLBLGen Pro is gold! The next-gen O/R mapper for .NET.@ Sunday, September 07, 2003 5:12 PM

Thanks! :)

Frans Bouma

# re: It's released! LLBLGen Pro is gold! The next-gen O/R mapper for .NET.@ Sunday, September 07, 2003 5:44 PM

Just downloaded the demo :)

After executing the prog for the first time I get:
SetupMainGui::Could not load the file: 'guistate.xml' to de-serialize the previous window state back. Reason: this is the first time you run this application or you have manually deleted this file. LLBLGen Pro will use the default window state and window positions.
SetupMainGui::Complete exception: Could not find file "C:\Program Files\Solutions Design\LLBLGen Pro Demo\guistate.xml".

Kris

# re: It's released! LLBLGen Pro is gold! The next-gen O/R mapper for .NET.@ Sunday, September 07, 2003 5:45 PM

Pushed the button too fast.

Just wanted to say that the eagle has landed.

Kris

# re: It's released! LLBLGen Pro is gold! The next-gen O/R mapper for .NET.@ Sunday, September 07, 2003 5:50 PM

That's normal behaviour, Kris :) It informs you that it couldn't load the file, and created a new one for you :)

have fun with the demo :)

Frans Bouma

# re: It's released! LLBLGen Pro is gold! The next-gen O/R mapper for .NET.@ Sunday, September 07, 2003 7:13 PM

Congradulations Frans!

LLBLGen has been great for many projects and now LLBLGen Pro looks great as well! You have been an asset to all of us. Your hard work and dedication is appreciated.

Now, I have some studying to do :)

Kim (Kman)

# re: It's released! LLBLGen Pro is gold! The next-gen O/R mapper for .NET.@ Monday, September 08, 2003 3:12 AM

Thanks Frans! I've been waiting patiently for LLBLGen Pro, thanks for keeping the price reasonable. You have a surefire winner on your hands.

senkwe

# re: It's released! LLBLGen Pro is gold! The next-gen O/R mapper for .NET.@ Monday, September 08, 2003 4:05 AM

Well, congratulations! As soon as I start to develop in .NET; i'll start to use it ;)

Nielsz

# re: It's released! LLBLGen Pro is gold! The next-gen O/R mapper for .NET.@ Monday, September 08, 2003 4:16 AM

Heh Nielsz :) And you'll never know when that will be. PHP isn't everything you know ;)

Frans Bouma

# re: It's released! LLBLGen Pro is gold! The next-gen O/R mapper for .NET.@ Monday, September 08, 2003 12:03 PM

Congratulations Frans! Been playing with the demo all day and have to say I'm impressed. Just waiting for confirmation from the boss now so I can buy the full version.

free4all@dootdoot.co.uk

# re: It's released! LLBLGen Pro is gold! The next-gen O/R mapper for .NET.@ Monday, September 08, 2003 2:10 PM

Impressive, so easy to use and most helpful documentation.

Just a quick question... what about inheriting the generated entity classes? What are you thoughts about inheritance within the generated framework?

btw nice implementation regarding lazy loading and COM+!

Paul Gielens

# re: It's released! LLBLGen Pro is gold! The next-gen O/R mapper for .NET.@ Monday, September 08, 2003 2:26 PM

thanks Paul!

Check out the two class scenario generator configurations, these will generate 2 classes (using different templates) per entity: one with the core logic (*EntityBase) and one for your code (*Entity). When you update your project, you just re-generate the base classes and keep the inherited classes. :)

Frans Bouma

# re: It's released! LLBLGen Pro is gold! The next-gen O/R mapper for .NET.@ Monday, September 08, 2003 3:12 PM


Please add a demo aspx sample that uses the demo Northwind classes. Any product that forces me to read too much docs before I can have a good feeling about it will get me to lose interest pretty quick. Put a grid that does delete, insert, edit so that in 5 minutes, I can see results and know how the product works.

I am sure others are impatient like me :)
llgl open source is a good product. Congrats.

Abdu

Abdu

# re: It's released! LLBLGen Pro is gold! The next-gen O/R mapper for .NET.@ Monday, September 08, 2003 3:27 PM

Abdu: I know :) a sample app will be up in a few days with a grid, some transactions etc. All the code snippets in the docs are from a test app that will be transformed in this example btw, so you can get started pretty quick, but an example app is definitely planned, however I ran out of time to write that before the deadline. However I'll add one in the next few days.

Frans Bouma

# re: It's released! LLBLGen Pro is gold! The next-gen O/R mapper for .NET.@ Tuesday, September 09, 2003 5:45 AM

Congratulations Frans! If I ever get to developing using .NET I'll keep your tool in mind ;-)

Stefan Mensink

# re: It's released! LLBLGen Pro is gold! The next-gen O/R mapper for .NET.@ Tuesday, September 09, 2003 5:53 PM

I use LLBLGen all the time and am anxious to try this out (hopefully within the next 2 weeks). If it is as awesome as I am assuming, I will definitely be purchasing this puppy!

Thanks!

Jason Bunting

# re: It's released! LLBLGen Pro is gold! The next-gen O/R mapper for .NET.@ Tuesday, September 09, 2003 10:35 PM

How will you make money selling it so cheaply? I would think that support alone would kill you.

Billy

# re: It's released! LLBLGen Pro is gold! The next-gen O/R mapper for .NET.@ Wednesday, September 10, 2003 3:16 AM

Billy: I don't have to pay a large amount of developers: I wrote the complete tool myself, we funded the development ourselves, and therefore we can offer the tool for a reasonable price and still make money. :)

Jason: I'm sure it won't be a dissapointment :)

Frans Bouma

# re: It's released! LLBLGen Pro is gold! The next-gen O/R mapper for .NET.@ Wednesday, September 10, 2003 10:59 AM

I am looking forward for the sample. Please let us know here. Thanks!

Abdu

Abdu

# re: It's released! LLBLGen Pro is gold! The next-gen O/R mapper for .NET.@ Wednesday, September 10, 2003 11:03 AM

Abdu: okidoki :) I'll update the blog as soon as it is ready. Currently the datagrids do not co-operate as I intented ;) so it will take another day or so to get it polished :)

Frans Bouma

# re: It's released! LLBLGen Pro is gold! The next-gen O/R mapper for .NET.@ Thursday, September 11, 2003 12:08 PM

Frans,

I'm so excited about this application, but I'm having a hard time putting it to work. I have to do a quick 1-page site to demonstrate some problem with a proxy server, so I figured it would be a perfect time to play around with the demo version while I'm waiting for my boss to buy the full version for us (which we are definitely doing, btw).

I'm trying to create a Class Library, following the directions in your help file, and the thing won't compile. I swear I'm not a complete idiot about these sorts of things, but here's what happens:
--Create new Library project in VS.NET (2002). Called it cNorthwind
--Generate code. General Config/VB.NET
--Copy all code into new project folder. Select and include all folders/files in VS.NET, so they're part of the project. Add the references that you specify. (SQLServer, ORMSupportClasses, System.EnterpriseSErvices)
--Try to compile. Boom.

The problem is that all the errors are due to missing classes that are trying to be imported, i.e. "Imports SD.NorthwindDAL.FactoryClasses", etc.

It's the classic chicken-or-egg problem... The classes won't compile if they can't reference other classes that need to be compiled, which themselves won't compile because yadda yadda yadda.

I'm sorry if I sound like a complete idiot on this, but I was able to make the last (free) version work.
:-P

Matt

# re: It's released! LLBLGen Pro is gold! The next-gen O/R mapper for .NET.@ Thursday, September 11, 2003 12:15 PM

Matt: It's a faq, it's a thing with VB.NET: if you define a namespace that is different from teh name of the vs.net project, visual studio (or the vb.net compiler) will prefix each namespace name defined with the name of the vb.net project. Here's the faq on the customers area, I'll also add this one to the general faq on the site. If this doesn't help, mail me directly. :)
---
When I compile the VB.NET code I generated with LLBLGen Pro, I get all kinds of errors about missing namespaces, what's wrong?

You have specified a different name as root namespace than the name of your Visual Studio.NET VB.NET project. When this is the case, Visual Studio.NET will prefix each namespace with the VS.NET project name. See the note in the LLBLGen Pro documentation: Using the designer / Generating Code, at the bottom.
----

Frans Bouma

# re: inheritence@ Sunday, September 14, 2003 3:41 PM

Nice tool!

Does it support inheritence (with multiple tables)? for example:
Article (table Article)
ArticleExtended (table ArticleExtended, 1-1 link to table Article)

The ArticleExtended class should also be returned as Article.


Regards,

Marco

Marco

# re: It's released! LLBLGen Pro is gold! The next-gen O/R mapper for .NET.@ Sunday, September 14, 2003 3:52 PM

Not at the moment no. The reason for this is that inheritence is not a concept that is definable in a relational model. If you have a 1:1 relation between two tables, you can also merge them to one table in theory.

We decided we should stay close to the relational theory and have created a tool that is based on the theory that is also the base of the E/R model, the base of every relational database schema, in other words: a relational model should be definable with solely DDL. Inheritence is then almost impossible to define (you need values in columns to distinguish classes in the hierarchy). We can always extend it in the (near) future.

It does generate mappings for all relations automatically, so if you have an extended article, Article.Extended for example will give you the extended info in your schema, it will traverse the 1:1 relation for you.

Frans Bouma

# re: Get rid of the 'file' concept for sourcecode!@ Monday, September 15, 2003 8:49 AM

Being a smalltalk developer, I found your comment amusing :)

I've been developing with these new age features for more than 10 years. As far as I'm concerned, Visual Studio, Intellij, Eclipse, etc. They are all a major leap backwards for me.

The ability to write code anywhere in the "IDE", select it, run it, test it, debug it, reload it, modify it, without having to stop/restart is incredibly productive.

I can't understand why more people are ignorant to smalltalk.

Take my advice. Take it for a test run. Get over the syntax hurdle and embrace the past.

James

# re: It's released! LLBLGen Pro is gold! The next-gen O/R mapper for .NET.@ Monday, September 15, 2003 6:21 PM

Very Nice!

Frans,
Could you explain a little how the Dynamic Query Engine works? Are you simply building a string and sending it as the text of a Command object - or is there more to it?

TIA,

DM

DM

# re: It's released! LLBLGen Pro is gold! The next-gen O/R mapper for .NET.@ Tuesday, September 16, 2003 2:44 PM

DM: It builds a string with the SQL, using the filters, relations and fields it receives. It also builds a list of parameters to pass on to the command object for the values specified as values for the query. So the SQL is build using a stringbuilder, the values are passed in parameters :)

Frans Bouma

# re: It's released! LLBLGen Pro is gold! The next-gen O/R mapper for .NET.@ Wednesday, September 17, 2003 12:11 PM

Excellent tool, Frans
I'll bet your wife is as happy it is finished as we are :-)

Just to keep nagging you with the same questions over and over again: I regularly develop websites for non profit orgs (in my spare time) that can't afford SQL server like my regular customers. Is there any chance you'll develop a MySql driver, using the excellent ByteFX driver for instance (http://sourceforge.net/projects/mysqlnet/)? -and if yes, is there some kind of a roadmap for future database support developments-

Dirk Devriendt

# re: It's released! LLBLGen Pro is gold! The next-gen O/R mapper for .NET.@ Wednesday, September 17, 2003 1:13 PM

Dirk: she is :)

Currently, Oracle driver is in development, DB2 driver is halted for now, since IBM hasn't released a solid .NET driver yet. Further databases which will get support after Oracle are: Firebird/Interbase, Postgresql (both have a driver by Carlos, which works ok) and if I can get it running, MySql 4.x. Because an important part of a schema is the set of foreign keys, it is necessary that MySql supports that. I heared that newer versions do so, so it shouldn't be a problem. However I think that with the planned support of Firebird and Postgresql you won't need MySql :)

Frans Bouma

# re: Useless programming language constructs@ Friday, September 19, 2003 8:50 AM

This is a case where you wouldn't use a break after every case if statements 1 and 2 have the same output.

for(int i = 0; i < 10; i++)
{
switch(i)
{
case 1:
case 2:
case 7:
Console.WriteLine("Hello {0}!", i);
break;
}
}
Console.Read();

Jeff Julian

# re: Useless programming language constructs@ Friday, September 19, 2003 8:51 AM

But you also have to remember that there are more options than just break (as well as the ability to specify multiple cases:

int i = 3;
switch(i)
{
case 1:
Console.WriteLine("ONE");
break;
case 2:
Console.WriteLine("TWO");
break;
case 3:
Console.WriteLine("Three alone");
goto case 4;
case 4:
case 5:
Console.WriteLine("3,4,or 5");
break;

}

Scott Watermasysk

# re: Useless programming language constructs@ Friday, September 19, 2003 8:59 AM

Multiple cases are indeed without 'break' but they share the same code block, I was refering to case statements which do have a separate code block and thus have to have a break statement too

The necessity to specify goto is the sign that the limitation of 'not having fall through' is wrong. If they just remove that limitation, it would be much better: you should specify break when you do not want fall through (and you already do so now) and you don't have to mess with goto crap when you want fall through.

Frans Bouma

# re: Useless programming language constructs@ Friday, September 19, 2003 9:03 AM

You're not 100% correct on the second issue (WithEvents in VB.NET). When you said:

"when you leave out the 'WithEvents', you can't define an event-handler."

That's not totally correct. You can define an event-handler, you just can't automatically wire it up with the "handles" statement. Instead, you must use the AddHandler statement.

So your choices are:

private withevents x as Button
and
public sub eventhandler(...) Handles x.Click

-- OR --

private x as Button
AddHandler x.Click, AddressOf eventhandler

Patrick Steele

# re: Useless programming language constructs@ Friday, September 19, 2003 9:06 AM

Ah, thanks Patrick :) I should have said 'can't define an event handler with visual studio.net'.

Frans Bouma

# re: Useless programming language constructs@ Friday, September 19, 2003 9:47 AM

I atcually think the ReadOnly/WriteOnly thing for properties is a Good Thing. It lets the compiler tell you "You wrote a property with just a Get or just a Set. Are you really sure you want to do that, or did you just forget?"

Dave Rothgery

# Useless language constructs@ Friday, September 19, 2003 2:48 PM

Why things the way they are.

TrackBack

# re: Useless programming language constructs@ Friday, September 19, 2003 5:07 PM

One reason you have to eplixitly specify a break in c# is because _a lot_ subtle coding errors in C and C++ come from the fact that you forget to say "break". This way you have to clearly state your intentions.

Fredrik Tonn

# re: Useless programming language constructs@ Saturday, September 20, 2003 7:03 AM

The mandatory overrides is IMHO good. Imagine you subclass a class and define new virtual method on it. Vendor of the subclassed class would eventually distribute new version, which has this method defined too. Than the compiler would scream, that you're trying to define new virtual method (virtual keyword) when you maybe want to do override.
This way you know, that you're doing something, that you're maybe not supposed to do (new vs. override keyword)

Jakub Skopal

# re: Useless programming language constructs@ Saturday, September 20, 2003 8:06 AM

Jakub: it's not the overrides, it's the overLOADS which is bogus. :) Overrides automatically implicitely says there is another method THUS it also overloads.

Frans Bouma

# re: It's released! LLBLGen Pro is gold! The next-gen O/R mapper for .NET.@ Sunday, September 21, 2003 7:53 PM

I'm impressed; bought the Pro version and got my existing framework working in no time with the generated code (I already used a similar setup, that however cost me a LOT of codewriting). Thanks a lot for a great tool!
MySql is just very widespread as a free database solution for cheap hosting solutions. The ByteFX driver I mentioned very closely follows the standard MS driver signature, so if you can build your catalog and map the datatypes, The runtimelibraries should be rather painless. It 's far superior to other non-GNU drivers, even when it's still in beta (since they're adding a PostgreSQL driver as well)

Dirk Devriendt

# re: Serious ASP.NET Editor flaw lives on in VS.NET 2003@ Sunday, September 21, 2003 9:57 PM

This bug was making me very upset and I could not understand why it was still happening, even though I had turned off all auto-formatting options in VS.NET. I just found out that is a well-known bug.

Not only the editor is having this irritating "I-will-do-it-for-you” behavior, but also the final "smart" formatting that is applied is (usually) completely messed up. A child programmer would have done better.

A workaround that I have been using, whenever the editor messes up the HTML code, is to copy and paste the HTML code to an blank XML file, apply the XML auto-formatting (with line breaks) and copy it back to the HTML. The XML auto-formatting feature is much more intelligent and neat than the HTML one and, usually, complies with my HTML indentation style.
I hope the hint helps someone else.

Marcos

Marcos Nowosad

# re: It's released! LLBLGen Pro is gold! The next-gen O/R mapper for .NET.@ Monday, September 22, 2003 11:57 PM

LLBLGen Pro is GREAT! I just bought it and installer it and like Dirk was able to replace my Deklarit framework pretty easily.

Now if I only knew how to pronounce the name so I could sing its praises to the world! :)

--Bruce

Bruce Onder

# re: It's released! LLBLGen Pro is gold! The next-gen O/R mapper for .NET.@ Tuesday, September 23, 2003 3:36 AM

Great feedback, Guys! :)

Frans Bouma

# re: Stop ranting about the blaster worm@ Wednesday, September 24, 2003 9:11 AM

>If MS did their job well, this would not have even been an issue in the first place.
>Do it right the first time, or not at all.

If you could start by copy-pasting other people's quotes correctly...
And Frans is talking about those coders, haven't you just read these next few lines as well or are just just plain st*@(*d?

Dennis v/d Stelt

# I don't understand the longhorn-hype@ Monday, September 29, 2003 5:29 AM

TrackBack

# re: I don't understand the longhorn-hype@ Monday, September 29, 2003 6:37 AM

Agreed!

I guess the reasoning behind this is they consider that the current versions work well enough. And they want to avoid touching it because changes may be break them in unpredictable ways.
Microsoft prefers to start a new beta program with a lot of bug to fix than introduce more bugs in a deployed release.

Fabrice

# re: I don't understand the longhorn-hype@ Monday, September 29, 2003 6:55 AM

Alot of it, I think, is that we just simply get used to the foibles and work around them. I have one major shell complaint: when you have a large number of files in a folder,say 500-3000, not only does the shell load way too slowly(especially if they are pictures), but if you switch from Tile to List, the list view doesn't paint properly and you end up with 2 or 3 files in each column off the screen. The result of this is that I automatically hit refresh after changing the view type, because I know I'm going to have to.

Another large part is, does anyone ever complain about such things? Has it occured to anyone to email microsoft to complain about where the taskbar properties shows up? Until reading this post I hadn't even considered an issue with it, it was simply "there", and I would automatically move my mouse there, To be perfectly honest, changing it now would confuse me more than it would help, I'm far too set into that pattern. I agree it is a little bit of a strange behaviour, but it is cleanly set into my mind now.

Another piece is maybe, just maybe, most people like things the way they are in situation A, or no one can agree on what behaviour situation B should exhibit, so they do something and let it be. In any system you work with, you are going to find things that you don't like, its just a fact of life. It applies to computers, cars, tv's(takes 3 buttons to set the sleep timer, I think it should only be one), microwaves(I have to press a cook button before I can put in the time to cook. why? Its a damn microwave, I obviously usually use it to cook.), and lawnmowers(one pull ignition takes 3-5 pulls). If you move on to Linux, MacOSX, FreeBSD, whatever, I'm sure you will find things you don't like about that system too. And I'd be willing to bet that some of the things you don't like the primary developers will not change because they or a majority do, or because its minor enough that its pretty far down the list. Sure, in some of them you can go down and change it yourself, but if you have time to hack into and recompile your system code everytime you think something should be different, then I'm jealous of the amount of time you have.

Now, I agree that Microsoft does a bad job on fixes. Having to contact product support services to get a QFE to something is really silly in my opinon. Especially since half the time you don't even know a patch exists until someone tells you on the newsgroups. A granular, automated, system wide update tool is needed. By this point it should be beyond easy to be well aware of every patch Microsoft has available for windows, office, or any other microsoft software, which patches you have installed, etc.

The open source community has the luxury of releasing bug fixes every step down the line, of course, they can also release 80 minor versions a year, or even nightly builds. It is simultaenously an advantage and disadvantage. While its easy to keep your products up to date with bug fixes, etc, it is impossible to ever really be caught up or maintain feature equivilence across the board. I imagine it can make support and training a nightmare, because person 1 has 1.1.1, person 2 1.1.2, person 3 1.1.2.1b, and so on, especially if 1.1.2b adds a menu entry or changes wording slightly.

The open source and small companys have that luxury; Microsoft needs to find a way to provide equivilant fixes and feature upgrades to its users. I just don't see how they can realistically do it. With the level of security scrutiny and testing they are expected to provide, how can they? If they were to make a quick fix for something not vital and it changed something distant, something no one expected(and stuff like that happens, you know that, no matter how rarely), it is a very straight forward fact that the media and the users would roast the company for it. If Redhat did it, no one would give a damn. There is politics in this too. It is unfortunate, but sometimes it is us, the users, that make it impossible for Microsoft to provide us with the services we demand.

If you expect perfection, the only thing you will probably ever get is perfect disappointment.

I dearly hope no one really expects Longhorn, or anything else for that matter, to be perfect, it will not be, it cannot be, nothing ever is.

Daniel O'Connell

# re: I don't understand the longhorn-hype@ Monday, September 29, 2003 7:41 AM

I hate to say it (I am not one of those anti everything Microsoft types), but my belief is that this is the result of the dominance Microsoft has in the marketplace. In comparsion to say, the car market where there's lots of competing players around - new cars are released around once a year, if the new model isn't as good as the competition, people simply buy the other model. Both cars essentially offer the same features for around the same price and you could say that they run on the same 'platform' (ok, bad pun...it's a road...). Bugs in cars are extremely costly for the manufacturer both in terms of repair costs and in terms of future sales (would you buy a car who's gas tank explodes? Would you buy another car from the same manufacturer?). Basically if you work in the buisiness world ,you have very limited choice in the software you run, one company in essence controls the roads AND the cars.
Bugs in the products they supply don't really affect future sales - there's no real competition so the spectre of potential lost sales is very minimal - Linux and OpenOffice are not percieved as real alternatives (ask around a normal office - who's even heard of OpenOffice?).
One thing in Microsoft's defence, bugs are in general just annoying (though in terms of Security, they can prove VERY annoying) - they probably won't kill anyone. Also, the products are pretty good (I have WAY more issues with OpenOffice / Star Office than MS Office 2003).
I also don't begin to imagine that Longhorn will be perfect - but I do believe that for the ordinary user it will be WAY ahead of the competition (umm...not counting Macs here...that's a fantastic OS...they just lost the war when it comes to user base)...

Scott Galloway

# re: I don't understand the longhorn-hype@ Monday, September 29, 2003 7:57 AM

There could be a few other reasons too.

First, fixing any kind of bug increases revenue by... zero? There simply is no finanacial impetus for MS to spend any more time than absolutely necessary on things like bug-fixing. Unfortunate but true.

Second, however much one may argue MS never truely innovates, one thing they have made a name on is working feverishly to stay ahead of the curve. Focus on the future - oddly enough, the antithesis of "Where do you want to go today?" - and pour money and resources into the next product, the next release.

I've questioned time and again recently a concern that this time they may actually get hurt. Literally hundreds of bloggers are posting delerious items about this year's PDC to the point that some are even begging for donations to attend now. In the meanitme MS is not only foregoing an XP service pack for another 3 quarters, they are not working on any new versions of some of their existing products - including IE. There _are_ competitors out there making good products and supporting them. Products that run _today_ on today's PC. In the meantime MS is focusing on a killer OS that won't see the light of day for at least 2 more years and virtually no machine out there right now could even run it!

Dave

# re: I don't understand the longhorn-hype@ Monday, September 29, 2003 8:50 AM

Daniel: good solid piece of writing. Your remark "If you expect perfection, the only thing you will probably ever get is perfect disappointment. " deserves to end up in a lot of signatures :) I agree that perfection can't be achieved easily, however I get the feeling Microsoft isn't even trying: after a release there will be errors and bugs but MS refuses to patch these.

The myth about 'it might break something' is IMHO totally bogus. When a piece of code isn't working as planned, you should make it work as planned. That doesn't have to require interface (code) changes, just reimplementations of current code.

Scott: I agree, however I think Linux will be an alternative for a lot of people within a year. KDE and Gnome are really on track to become solid platforms.

Dave: Exactly. I think it is revenue driven not to patch a lot or better: to spend a lot of resources on customer support. On the other hand, they have enough revenue to get customer support on a higher level and still make money.

Frans Bouma

# re: I don't understand the longhorn-hype@ Monday, September 29, 2003 10:24 AM

My shell restarts very infrequently and when it does i always assumed this was because of a 3rd party app hanging the system. I would rather have restart called and have the OS pull out of the nose-dive as opposed to having to give a 3 finger salute and start all over possibly losing work. I never attributed the restart to a known bug in the shell that they refused to fix (maybe im wrong?). As for the other issue of the properties dialog, I cannot reproduce this on my system nor have i ever seen it on anyone elses (even on dual monitor setups). That issue not withstanding, I havent obeserved many other bugs of this nature either.

But besides the fact that i dont agree with the specific issues you raise, the overall sentiment i can agree with.. especially the one about competition. I hope OSS gains more momentum and puts more pressure on MS to start delivering better products at more competitive prices.

Ray Jezek

# re: I don't understand the longhorn-hype@ Monday, September 29, 2003 12:40 PM

I agree with your sentiments regarding the lack of bug-fixes.

But regarding your post title "I don't understand the longhorn-hype":

I think you understand the hype very well - people are excited about a new OS, and XP is old news.

Frank Showalter

# re: I don't understand the longhorn-hype@ Monday, September 29, 2003 12:50 PM

"I think you understand the hype very well - people are excited about a new OS, and XP is old news."
Well, I understand that the hype is there and what's causing it, and at the same time do not understand why the hype is there, because XP might look old news, it will still be the reality for the next 2 years to come, without a big improvement in sight (perhaps a new moviemaker, oh the joy). People should realize that hyping the next-generation OS is not what we need, we need focus on today's problems with solutions available today, not tomorrow nor next year but today.

Frans Bouma

# re: I don't understand the longhorn-hype@ Monday, September 29, 2003 1:23 PM

Amen! I agree 100% with you Frans. This is something I've blogged about before, too:

http://dotnetjunkies.com/weblog/plaudeman/posts/1811.aspx

http://dotnetjunkies.com/weblog/plaudeman/posts/1540.aspx

http://dotnetjunkies.com/weblog/plaudeman/posts/1111.aspx

Keep it coming! The more voices that speak out together give us a greater chance that we'll be heard!

Paul Laudeman

# Frans doesn't understand the Longhorn hype@ Monday, September 29, 2003 2:09 PM

TrackBack

# re: I don't understand the longhorn-hype@ Monday, September 29, 2003 4:56 PM

Another thing, after sleeping on it, one of the things I'm looking foward to in longhorn is the hope that some of the major platform issues that cause programs to break (COM plugins, etc) may be resolved as .NET style designs are used....that may still be a dream however

Daniel O'Connell

# re: I don't understand the longhorn-hype@ Monday, September 29, 2003 6:47 PM

Let's face it: it was hype that got people to purchase Windows XP in the first place. Windows 2000 had been out for a good 2 years when it was released. The smart consumer would have purchased Windows 2000 back in '99, skipped the incremental Windows XP release and had a solid and financially smart 6 years between OS upgrades. That is unless of course you managed to justify spending $100-$200 on a brand new skin and a new login screen with pictures. People need to start making smarter choices as consumers. You don't complain to car companies when the release a new model each and every year, do you? No, you just don't buy it. Period.

Derek Stone

# re: I don't understand the longhorn-hype@ Monday, September 29, 2003 10:51 PM

"You don't complain to car companies when the release a new model each and every year, do you? No, you just don't buy it. Period."

True, but if said car company refused to maintain their products that were over eight years old, I would complain. And, look for another car company.

I beleive that Microsoft has some really innovative products, but that their biggest product, Office, is peaked and invation saturated. How much more can you change a word processor? How many more features can you add? I agree with Fran, if you want to keep the client, fix the bugs.

I see in corporate offices the decision makers are asking why they need to spend more money on technology. How can the CIO justifiy spending more money on a tool they just bought two years ago and probably haven't even fully amortized yet. A goat takes five years to amortize, why should a word processor be any less?

If your not part of or contributing to the bottom line, you are overhead. Overhead is dispensable.

Darren Pruitt

# re: I don't understand the longhorn-hype@ Tuesday, September 30, 2003 7:30 AM

Now Darren, I believe I must disagree. A year ago I'd stand alongside your comment about Office and new features and changing word processors. But have you checked out those exact things in Office 2003? InfoPath and native XML come to mind immediately.

Granted, at this moment those two things are completely meaningless to 'consumers', but given a year or two of developers creating their part and, well, I find Office 2003 to be the first version with significant improvements since Office 97.

Oddly enough, MS in many ways did get it right with Office 2003. First off, the new features I just mentioned are very good reason to purchase it - reasons that didn't exist for Office 98 through XP. I realize this also means MS gets the increased revenue too, but then again... during the development/beta cycles for 2003 they also released a slew of SRs too. Something they don't seem to be doing for Windows XP.

Dave

# re: I don't understand the longhorn-hype@ Tuesday, September 30, 2003 9:09 AM

1995
====
Bob: Boss! There's a great new Office product to go with that new OS!

Boss: Great! Email!?! This will help productivity! Get it for every one!

1997
====
Bob: Boss, there's a new Office product out, it fixes a lot of bugs!

Boss: Great! Bugs are bad! You computer guys sure are helping out the company!

2000
====
Bob: Boss, there's a new Office product out, it is Y2K compliant.

Boss: Well, this is getting a bit expensive but corporate did just make it the standard. Make sure everyone gets a new Anti-virus too, someone out doesn't Love Me.

2002
====
Bob: Boss, there's a new Office product!

Boss: No.

Bob: It has increased security!

Boss: No.

Bob: It looks cool!

Boss: No.

Bob: There's someone fromt eh BSA at the front desk.

Boss: What! Ok, we can upgrade, but we have to lay off half the IT staff. We can outsource the help desk.

2003
====
Bob: Boss! There's a new Office product!

When will it end?

Darren Pruitt

# re: I don't understand the longhorn-hype@ Tuesday, September 30, 2003 9:26 AM

Dave: XML functionality is part of open office since a long time. It's nothing new. Besides that, the point is: when I start word, I want to type some texts, save it, print it whatever, but I want the tool to HELP me with the processing of the words. Now, with Word XP I still have errors in headers, bullet lists, table crap etc. No offence, but Word XP is the 2002 version, why are these simple bugs still bugging me in the year 2002, in version 11 (!) of a wordprocessor ? And! why aren't these fixed but is a NEW version released for 400$ which seems to fix these bugs (I hope)? The functionality I want/need is already in word 2000, even in word 98. I just want it to work OK, without bugs. So instead of bringing out new releases for money which have new features, it would be great if the current version is bug free. Now, when that happens, no-one will upgrade, true, but when MS is following this path of 'Flaws == revenue', more and more people will understand that f.e. Open Office is as good as MS office, if not better and costs less (0$).

For MS, they have to realize that they're at the end of the line for office: there will be less reasons to buy new versions, because people get annoyed or alternatives are as good and cost less.

For me, I'll never go back to MS Office again, because the alternatives are IMHO of better quality and cost nothing. I'm willing to pay for quality, don't get me wrong, but I also judge on quality: if the tool is not worth the money, I won't buy it. MS office is IMHO a huge pile of badly maintained software, with a lot of weirdness that is not addressed in whatever version you purchase. (Word never had a good table editor, and it will surprise me if the 2003 table editor is of the quality of open office).

So, MS should focus more on quality to KEEP existing customers: make the customer feel that they are appreciated, serve these customers with frequent updates so the customer is helped. This will cost revenue, but if they are not doing this, they will lose customers to competitors who have a better product and it takes a huge pile of effort and money to get customers back.

Frans Bouma

# re: I don't understand the longhorn-hype@ Tuesday, September 30, 2003 11:04 AM

Derek-the difference with car companies is that they can be forced to recall vehicles to fix problems that are wide spread-at no cost to customer. They also have the warrenty itself to cover the vehicle. There are guidlines for safety set forth by the government that they must adhere to. Would you except it if your model's A/C system failed and the dealership said wait for the '04 model it should be fixed in those-for 16,000 dollars? Microsoft has no accountability-that's the problem. Mercedes-benz had a slew of issues in the last few years with the managment of all the new electronic systems and they were forced to buy back all the e-class models that were having issues. Oes microsoft buy back copies of office-no.

ethan estes

# re: I don't understand the longhorn-hype@ Tuesday, September 30, 2003 4:55 PM

Frans, sure XML functionality has been part of 'open office' or even MS Office (in case you meant StarOffice or whatever). But _native_ XML storage of Excel spreadsheets? XSL formatting? You might as well say do your webpage development in Word and use the utterly useless "Save as HTML" feature for comparison.

I never meant to say that Office was bug-free, onl.y to say that MS never stopped publishing coherent bugfixes while developing a new version. Which is something that they are with Longhorn.

Derrick, please note I did not say Office 2003 offered _immediate_ paybacks to the 'consumer'. Only that the development features I mentioned will in time be used by the consumers in ways that will IMHO make it considered the next 'true' version since Office 97, when Outlook became an official part of the product.

Dave

# re: I don't understand the longhorn-hype@ Wednesday, October 01, 2003 4:17 AM

I have to say the XML features of Office 2003 are of great value to me. Even if open office can handle xml, not a single one of my customers uses open office. Not to mention I don't really want to maintain two code bases to handle MS Word and OO Writer interop\document generation(assuming feature parity...I imagine most of the features exist in both), same goes for Excel, etc.
At one time, during a budget crunch, I suggested using OpenOffice to a local small company to save money. The owner asked me three questions which pretty much killed the subject: 1) How much would it cost to re-write everything to work with the new suite(they use 3 apps that interact with word and\or excel) and several smart tags, 2) how likely is it that they could find, say, a new secretary that was trained and able to use it immediatly, 3) how much was it going to cost to switch back if people lost interest in OpenOffice and stopped working on it.
After sitting down and thinking about it, buying office for the new pc's was _MUCH_ cheaper. Add onto that I was never able to verify if OpenOffice could handle smart tags, which they wanted(really cuts back on the work, as they interface with the customer, employee, etc database), and the decision for OpenOffice died on the floor, MS office was just cheaper and more productive.

Point is, $0 price tag doesn't always make things cheaper.

Daniel O'Connell

# re: I don't understand the longhorn-hype@ Thursday, October 02, 2003 12:07 PM

- If you look at the reliability of Windows starting from 3.1 to 2003, the OS has been improved alot and with many new productivity features. MS could have improved 3.1 for 13 years and give us a rock solid Windows 3.1 but MS is in the business of making money and companies would have moved to Novell, Unix or Mac if Windows 3.1 stayed with its current features. MS needs to fix its security and the updates feature. I read just today that MS admits that its security update strategy is flawed and will patch it using a new method.

I like MS products and they have increased my productivity as a user and as a developer many times. My only gripe is that every new version demands more computer resources. However I don't mind upgrading my computer every 2 years. Need to do this anyhow for games too :)

If there's anything you don't like about an MS product, you need to let them know. If enough people complain, they will notice and hopefully do something. It doesn't them any good if you complain quitely.

Every product I use has annoyances and you learn to live with them or use something else. For example, my inlaws' Blazer's cupholder is the most idiotic one. It doesn't have enough depth to hold a tall cup and has no grip. I have to take easy turns to avoid spilling the cup. Can I call this a design bug?
My alarm clock off button is in an obscure place. I have to be 60% awake to find it and turn it off. Time to buy a new one. .. and so many other annoyances.

Abdu

Abdu

# Can ASPNET read the registry or not?@ Thursday, October 02, 2003 3:34 PM

TrackBack

# re: Why Edit & Continue is a bad thing@ Sunday, October 05, 2003 1:12 PM

As a VB6 programmer by trade, I prefer C# as a language ; Whenever I try VB.NET, I start to unconsciously use VB6 syntax. And since I'm still working on active bodies of VB6 code all the time, I don't really need VB.NET syntax cluttering up my head and taking over.

But I really miss Edit & Continue when I write C# code ; particularly because I'm still learning C# and the .NET class libraries. While a lot of things will be caught by the compilers, and I agree that test-driven development is the way forward, E&C really helps you learn.

I came to software development with zero professional experience from the medical profession : I was pretty much thrown staight in at the deep end and had to learn VB6 in a matter of weeks (on the redoubtable foundation of BBC and Spectrum BASICs). E&C was a great help ; when you've put a couple of parameters round the wrong way because of inexperience, it's a great boon to be able to shift the run pointer back a line and swap them round.

The other thing I miss with .NET is the ability to execute code in the immediate window without being in break mode ; the VB6 immediate window has many uses, from looking up character codes without having to trudge through the help, performing large calculations that you don't trust the default calculator with, etc.

Convenience features don't make you less of a "man". And you don't always have the luxury of well-structured code with decent testing frameworks ; very often, you're working with code that others wrote, and of questionable quality. My time maintaining our huge, ancient VB3 app has made me very, very glad of E&C.

Dr_Barnowl

# re: I don't understand the longhorn-hype@ Monday, October 06, 2003 8:20 PM

Explorer loads lots of 3.party DLLs in its process space. In fact it can host IE, Thumbnailviewers (e.g. thumbnails of .eml-files) and lots of extensions to the menus of files.

I wonder whether such a thing can ever be stable!

But you can just replace the explorer.exe-shell with cmd.exe or Cygwin Bash if you want. Or progman.exe (in XP). Just do it!

Me

# re: Eric Sink's crabbyness@ Saturday, October 11, 2003 8:21 AM

Yep, this post is really funny and worth reading ;-)

Christophe Lauer

# re: Eric Sink's crabbyness@ Saturday, October 11, 2003 8:56 AM

Not only is a good writer but he has a terrific sense of humor as well - http://notalegend.com/notalegend.html

SBC

# re: It's released! LLBLGen Pro is gold! The next-gen O/R mapper for .NET.@ Tuesday, October 14, 2003 11:38 AM

I hope you're working on the examples. It has been over a month since my request and I've heard nothing.

Abdu

Abdu

# re: It's released! LLBLGen Pro is gold! The next-gen O/R mapper for .NET.@ Tuesday, October 14, 2003 12:01 PM

Abdu, erm...
http://www.llblgen.com/pages/demo.aspx

the current example (VB.NET or C#). It's released on the 19th, updated on the 30th.

The blog is also updated with this. :)

Frans Bouma

# re: It's released! LLBLGen Pro is gold! The next-gen O/R mapper for .NET.@ Wednesday, October 15, 2003 3:50 PM

Ok thanks. I wasn't aware of the update.

Abdu

Abdu

# re: It's released! LLBLGen Pro is gold! The next-gen O/R mapper for .NET.@ Wednesday, October 15, 2003 3:54 PM

No problem :)

Frans Bouma

# re: Oracle 9i is already generations ahead and shows a .NET flaw.@ Monday, October 20, 2003 7:17 AM

Interesting read. I never thought about .NET from this point of view.

Although you are probably right about .NET the lack of support for vendors other then MS, but I would think it’s fair to say “WE” could fill in the gaps ourselves with a strong open-source initiative.

Paul Gielens

# re: Oracle 9i is already generations ahead and shows a .NET flaw.@ Monday, October 20, 2003 7:18 AM

Is Scott McNealy blackmailing you? :)

But seriously, I agree with most of your points, although I think stuff like MVCC and synonyms will probably reach Yukon.

I'm not sure about the rest though. Also, I must admit I've never used UDTs, but I agree that for large-scale db applications, they're probably extremely important. Also, they tie in well with the whole schema approach, that basically encourages (or rather forces, but in a good way :)) to just make a single environment housing all your data and then creating schemas for individual applications. If you use UDTs there it can save you a lot of time if you create those custom types with generalized functionality in mind for all the different applications that might have a table in their schema containing one of those UDTs. In SQLServer people often don't bother because they'll have another database for "that other" application anyway. Which in turn encourages long-term chaos.

Jeroen

# re: Oracle 9i is already generations ahead and shows a .NET flaw.@ Monday, October 20, 2003 7:31 AM

Jeroen: Larry didn't need to, he just gave away a free version of Oracle 9i for developers to download :)

You are very correct about the UDTs and the chaos and the simplicity of maintenance. It really worries me why I haven't read anything about them in the Yukon hype that is available.

Paul: The limitation is in the DataColumn type in .NET, it doesn't support custom types. That pretty much kills UDT support, unless you are using an O/R mapper with custom classes. At the moment these tools are left in the cold by both Oracle and MS because both their providers are not supporting UDTs. (Don't know about the commercial providers though, but these are extremely expensive). Nevertheless, to unleach the true power of DB2 and Oracle in an OO fashion, you have to write code in Java inside the database and call that code from .NET. You then have to be a very very pro-.NET person to pick .NET for the logic outside the database. I'd then opt for Java / J2EE also.

Frans Bouma

# re: Oracle 9i is already generations ahead and shows a .NET flaw.@ Monday, October 20, 2003 8:19 AM

Nice review, i've some thoughts also...
1) UDT is not connected directly to Java but usable in it- through very similar to strongly
typed dataset realization but support in-
DB generation of "beans"="row mappings".

2) "native" UDT language is "PL/SQL"(4GL) language written on c++, not Java
(Java VM is optional component of DB and
most DB gurus use "PL/SQL" packages/procedures
architecture in real work).

3) True power of relational data is flexibility
in operations but when you try to "enforce" some kind of "schema" on it- you lose that.
I mean, did you try to use this "wonderful"
UDT functionality in big project?
I think not, because you'll see that it's
really hard to change UDT/object schema-
require mass recompilation,code adjustment
procedures.Can you garantee that you data
schema(structure/content relationships) will always be the same?Don't think so...
But if you can't you're in big trouble.
What if you want to add/drop/rename column
(field in OO world)of physical table-type definition get out of sync straight away.

Now we're using UDT in "object" views
(more concrete- XML xsd based views) for
structured layer on relational data but we're
always tring to adapt OO features in our projects on "physical"=table layer-
without luck so far...OO layer is not flexible enough.From relational data I can assembly
any object from object I can ...???
By the way XML data is more flexible by nature
than object graph and oracle support structured "xmltype"(xsd based)
in "native" mode but it's also useful only in
"view" mode for now(for complicated cases-
save/read not count ;-) because after selection from "xml" table
you lost any type information associated with
table's column and column data becomes opaque
"xmltype".
Maybe XQuery/XPath2 can help in some way ;-)
but for now...

Best wishes.
P.S.
Look at
(http://www.oracle.com/forums/forum.jsp?forum=34) XML DB forum you can find it interesting.

Andrew

# re: Oracle 9i is already generations ahead and shows a .NET flaw.@ Monday, October 20, 2003 8:25 AM

::Schema driven

I disagree on this one.

I mean, you get another product from someone. Having this product's stuff in a separate database is a great way to separate different "modules" (like complete applications systems) from each other.

What do you do if by chance you need to install two applications having a table with the same name? The message board on your website has a Table named "User", as well as the content management system?

These are two different systems. How does oracle handle this? I think I prefare the "separate database" way of thinking.

Thomas Tomiczek

# re: Oracle 9i is already generations ahead and shows a .NET flaw.@ Monday, October 20, 2003 8:28 AM

But anyway xml functions is very powerful
feature
(http://download-west.oracle.com/docs/cd/B10501_01/appdev.920/a96620/toc.htm),look at "Generate XML Data from Database" chapter xmlelement/xmlagg/xmlsequence -all is
xml costruction functions from flat relational
data.

Andrew

# re: Oracle 9i is already generations ahead and shows a .NET flaw.@ Monday, October 20, 2003 9:22 AM

Interesting that you claim to be a database purist and yet you like sequences and MVCC. I like those too, but they seem to be "impure" from the relational theory point of view. As to the other three features, I feel that those are misfeatures. They introduce a great deal of complexity into the design of the database without much in the way of compensating benefits. I suspect they belong to the class of features in Oracle that I like to call the "Oracle DBA Full Employment Protection Act". They exist primarily to protect the jobs of high-wage DBAs.

John Cavnar-Johnson

# re: Oracle 9i is already generations ahead and shows a .NET flaw.@ Monday, October 20, 2003 9:35 AM

"Interesting that you claim to be a database purist and yet you like sequences and MVCC. I like those too, but they seem to be "impure" from the relational theory point of view"
Based on what are these impure? Sequences are a way to use synthetic keys without having to add information to the model, as I described: they allow you to set field values without having to rely on DDL specifications, which doesn't seem to be impure to me at all. The same goes vor MVCC: as long as a transaction is not committed, the actions taken by the transaction should not affect other users in the system. This is exactly what MVCC realizes. Without MVCC, users will be blocked by an ongoing transaction even when that transaction can roll back. Enabling dirty reads to circumvent this will allow dirty data to end up in the other data, which can cause data inconsistency. MVCC therefore is very helpful in a relational model, and I definitely don't see why MVCC is impure at all, on the contrary.

Your other claim about 'complexity' is just that, a claim. Can you elaborate it a bit? Just claiming it adds complexity without benefits is not that useful. Synonyms for example reduce complexity for a great deal. UDTs do to, because you don't need to write check constraints or triggers anymore, two elements which are stored 'deep inside' a schema most of the time and are easily forgotten (especially on sqlserver)

Frans Bouma

# re: Oracle 9i is already generations ahead and shows a .NET flaw.@ Monday, October 20, 2003 9:38 AM

"because you don't need to write check constraints or triggers anymore"
I meant, triggers to check values set for fields. There are other areas where triggers can be helpful and these are of course not solved by UDTs

Frans Bouma

# re: Oracle 9i is already generations ahead and shows a .NET flaw.@ Monday, October 20, 2003 9:46 AM

Thomas: you can start different oracle instances if you really want to separate the schemas. However when you look at oracle as a set of schemas it's really not different from a set of 'databases' where you have just one schema per database: the dbo one: after all, you just 'see' what you are allowed to see, so if there are hundreds of other schemas with tables, you can't see them nor use them.

Andrew: No I haven't used UDTs in a large project and your concern about recompilation/modifications of schemas is similar to the disadvantages of stored procedures, however I still think when you design your UDTs with care, they can be a great benefit and will not be of such a disadvantage as it might seem. Nevertheless: the feature is there, but .NET can't use it. This is important: you can't use a table with a column of a UDT type in .NET, nor can you bind a REF CURSOR to a dataset when that REF CURSOR returns rows with UDT values. This can severily limit the usage of .NET on Oracle.

Frans Bouma

# re: Oracle 9i is already generations ahead and shows a .NET flaw.@ Monday, October 20, 2003 10:04 AM

Frans,
i've worked with both products for years, and even if your statements about SQL Server are correct, i don't consider these strategic in a real sense, but they're so important that MS will implement everything (but sequence) in SQL Server Yukon.
Honestly speaking, i think that Oracle has 2 real main advantages over SQL Server: it's multiplatform and it's less dependant from the O.S. for functionalities like I/O, for example. This let Oracle designers implement stuff like "per User" or "per Group" resource management.
SQL Server has a main drawback, and it's related to Windows I/O subsystem and operations priority.
But technically speaking, SQL Server's Query Processor and Optimizer are more advanced than Oracle's one, and the ease in management and operations is not a point of discussion between the two products.
Usually, i'm not a "taliban" comparing this two different approaches, and i recognize that they're leaders in this market, but please, use more important points to judge who's better.

Silvano Coriani

# re: Oracle 9i is already generations ahead and shows a .NET flaw.@ Monday, October 20, 2003 10:15 AM

Silvano: I used these points because they are important for developers. SqlServer's fiber option (it's an NT kernel option really) plus the careful placement of datafiles and logfiles on separate disks on separate controllers can eliminate a big chunk of the I/O bottleneck. Per 'user' resources can be implemented in SqlServer too, when you look at users in Oracle as 'databases' in SqlServer: in SqlServer too you can manage where which filegroups are stored, but of course not how many memory / cache that database is allowed to use.

The multi-platform feature of Oracle is perhaps important to some people, I don't think that it is an important feature to have, mostly because Oracle and also SqlServer are used as standalone servers in a lot of situations (especially Oracle), which eliminates the importance of a platform.

And seriously: what will come with Yukon is fine, but it is at least 1 year away. Today, I can only opt for SqlServer, which is still the database I know best and use most, but it is aged. The features I listed are important to me as a developer and are not available in .NET nor SqlServer for at least a year. I think people should be aware of what is available today instead of looking at f.e. Yukon and 'what will be'.

Frans Bouma

# re: Oracle 9i is already generations ahead and shows a .NET flaw.@ Monday, October 20, 2003 11:03 AM

http://www.tpc.org/tpcc/results/tpcc_perf_results.asp?resulttype=all&version=5

Microsoft has 5 of the top 10 in just performance. Oracle has 3.


http://www.tpc.org/tpcc/results/tpcc_price_perf_results.asp
If you go by price and performance...
Microsoft has the top 10 in all results


I guess personally, I do not view putting application or business logic inside the data layer as a cool feature. To me it seems like lazy programming. N Tier or SOA is more flexible imho. Putting application logic inside the application allows you to change business functionality without reworking stuff in the data layer. It also has a lower TCO. Developers typically make less than DBAs (warning: generalization). 2-3 developers might cost what 1 DBA would run. One of the points people have made is that Oracle is cross platform. And Sql Server being tied to the underlying OS functionality such as I/O and operations priority. Well guess what, you put Oracle on Windows, it is subject to the exact same things.

My 2 cents.

Jeff Gonzalez

# re: Oracle 9i is already generations ahead and shows a .NET flaw.@ Monday, October 20, 2003 11:10 AM

Having rolled out a complete .Net solution using Oracle's .Net Provider, I have to say when it comes to .Net development use SQLServer. At this point neither provider (Oracle/MS) offers the full breath of features even Ora8i has. Now I've recently come across a new provider from CoreLabs that looks promising. hit it up here http://crlab.com/oranet/. There is a demo version availible. I'm very interested in putting there OraclePackage through it's paces along with the promise of all Oracle 9i datatypes. I wished they had on-line docs that I could look through to get a feeling of what some of there examples are like.

Jason

# re: Oracle 9i is already generations ahead and shows a .NET flaw.@ Monday, October 20, 2003 1:20 PM

IMHO, the most important difference between SQL Server and Oracle is its clustering support.

In SQL, if you want to cluster, you need to partition your database, and perhaps change your application logic. Each cluster is a different database server. In Oracle, you can have any number of database servers accessing the same data. This implies that you can scale out the database very easily, so running business logic in the database is a good option. SQL developers are always looking for ways to remove processing from the database because is the single point of lack of scalability. Oracle developers don't need to be that worried about that.

BTW, Yukon supports UDTs.

Andres Aguiar

# re: Oracle 9i is already generations ahead and shows a .NET flaw.@ Monday, October 20, 2003 1:35 PM

Hmmm, how about using the best of both worlds? I work for a firm that up until very recently was exclusively Oracle. We have found the mix of using Oracle for data services and logic (business rules, etc.) mixed with .Net for presentation to be, in a couple of wors, brutally powerful.

Brad More

# re: Oracle 9i is already generations ahead and shows a .NET flaw.@ Monday, October 20, 2003 3:09 PM

SQL Server "database" = Oracle "tablespace". This would be a more effective segregation of data over creating a separate Oracel instance, as a completely separate instance would double the resource load on the machine. Creating an additional tablespace for new objects would essentially achieve the same end without the additional overhead.

Bob Yexley

# re: Oracle 9i is already generations ahead and shows a .NET flaw.@ Monday, October 20, 2003 4:06 PM

Personally, I think xml support (in all its facets) is much more important than any other technology (regardless who provides it).

But back to the topic at hand ...
UDTs provide a powerfull means to abstract away the traditional relational thinking (views, tables, columns, ...). However if I have portability (think "with a minimum amount of effort/changes") at the top of my priority list, I won't use it. But if it's not, don't overshoot architecture and go for it!
On the subject of synonyms: You're right, but a well designed data-accesslayer/O-R mapper will get you just as far. Ofcourse, the real benefit comes from using these synonyms in the database itself (so there's two ways of looking at this).

From another perspective: What did you expect? That MS would build a fully functional provider targetting all features of the latest Oracle DB. You seem to forget that MS has a database server of their own, and I don't think the data access team is gonna bite the hand that feeds them. If Oracle would consider .NET to be a serious platform, they would write their own fully fledged provider (and they have, it's called ODP.NET[http://otn.oracle.com/sample_code/tech/windows/odpnet/index.html], but I don't know about the feature-set). If anybody should bring all these features to the .NET masses, it should be Oracle.

Should all these features be implemented in MS their database product? MS has a tendency to listen to developers and customers, so it's up to us to make sure they (the features) make it into MS SQL Server!

Yves Reynhout

# re: Oracle 9i is already generations ahead and shows a .NET flaw.@ Monday, October 20, 2003 4:35 PM

Oracle 9i is certainly ahead of SQL 2000, and Oracle 10g broadens the gap even further. But as far as Runtime Hosting goes Oracle is Java Only while Yukon will ultimately be .NET only. OpenLink Virtuoso (a virtual database engine for SQL, XML, and Web Services) addressed many of the current and future features of Oracle, SQL Server, and DB2 in a single compact and cross platform package today (v3.0, and more so re. new Oracle XML functionality in the v3.2 release ETA this week). My blog (see url above) and this WIP Blog (http://www.openlinksw.com/weblogs/virtuoso) are all built using Virtuoso (leveraging SQL, XML, and Web Services), and they contain references to a plethora of live tutorials and demos (available as RSS, OPML feeds naturally).

Kingsley Idehen

# Funny thing ...@ Monday, October 20, 2003 5:47 PM

... you can have all of those features (except the "Synonyms") with <a href="http://www.postgresql.org/">PostgreSQL</a> for free.
Go and try it.
You can install it in windows via Cygwin , it is somewhat painfull to install, but if you follow the instructions in /$CYGWIN_HOME/usr/doc/Cygwin/postgresql-$VERSION.README you should be OK, see the "install as service" instructions (there are plans to make a native windows version, but it didn't happen yet).
There is work underway to make a <a href="http://gborg.postgresql.org/project/npgsql/projdisplay.php">.Net Data Provider </a>.

<a href="http://pgadmin.postgresql.org/pgadmin2/pgadmin2.php">PgAdmin</a> is a very decent management tool, I advise to use the 1.6 version, the latest multiplatform version has some warts.
You can easily migrate an existent SQL Server Database to PostgreSQL using the Database Migration Plugin.
Have fun :-)
Regards,
Jorge.

Jorge Chandra

# re: Oracle 9i is already generations ahead and shows a .NET flaw.@ Tuesday, October 21, 2003 3:06 AM

As an Oracle specialist, I agree with most of the things you say, except for the documentation. I do not agree when you say that the documentation is not important, and when you say it is poor. I think that Oracle's documentation is an industry standard, given the complexity and the dynamics of the software it describes. Have you been through the "Concept Guides"? Too easy for you? It is a introduction class to database that very few books match. Most of the reference guides give you the detailed information you need to do your job. Most of the doc is available in html and PDF for priting. Of course, like in all software of that size, there are "doc bugs" but there are so many help resources out there...

Peter M

# re: Oracle 9i is already generations ahead and shows a .NET flaw.@ Tuesday, October 21, 2003 5:18 PM

Hi,

It looks like Yukon will support UDT's, take a look:

http://blogs.gotdotnet.com/tims/commentview.aspx/d98b62ed-686b-485b-b82b-b9f2f32b3bf1

Duncan Godwin

# re: On Microsoft's new Security Bulletin release scheduling@ Wednesday, October 22, 2003 6:57 AM

Well, the suggestion of doing both, making individual patches available immediately and releasing monthly packages, is, in my humble opinion, not the path to take.

Figure: when an individual patch is announced a lot of people may find inspiration and go and find out which system administrators have installed the patch and which haven't. System administrators that don't immediately install the patch are quite vulnerable then.

By releasing monthly security packages one suggests that not taking action immediately is a reasonable option, which obviously it isn't.

Therefore, a combination of immediate and once-per-month release strategies is not better than any of two alternatives.

Stefan Holdermans

# re: On Microsoft's new Security Bulletin release scheduling@ Wednesday, October 22, 2003 6:57 AM

Actually, they said that if a flaw is particularly severe or there is a possible exploit available, then they'll release this info outside of the schedule. So I don't expect remotely exploitable bugs to remain unattended for a whole month.

Seems reasonable to me :-)

senkwe chanda

# re: On Microsoft's new Security Bulletin release scheduling@ Wednesday, October 22, 2003 7:02 AM

Stefan: you assume that when a security fix is released, the world doesn't know that there is a flaw. However this is not true in a lot of cases, see the securityfocus.com forums.

I saw MS will release a patch immediately when an exploit is in the open. How often do they check for this exploit? 24/7? It doesn't say, plus even if they do, they can't be sure the exploit isn't there.

I think the only real option is to keep it as it is: release the patch when it is done, thus allowing people who want to patch immediately, to patch immediately.

Frans Bouma

# re: On Microsoft's new Security Bulletin release scheduling@ Wednesday, October 22, 2003 12:18 PM

Microsoft did research and discovered that these vulnerabilities were almost never exploited before the patch was released. People were reverse-engineering the patches to determine the flaws and THEN exploiting them. Also, once a week patches were very hard on guys like me who deal very heavily with security (www.patchdayreview.com). Besides, a lot of IT people were screaming bloody murder that they had to patch every week, granted, patches weren't released EVERY week, but people are not making use of SUS like they should. Critical patches are still released as meeded.

Besides, weren't you just complaining a couple of months ago that you didn't like Microsoft's patching techniques? At least they are trying something different.

Robert McLaws

# re: On Microsoft's new Security Bulletin release scheduling@ Wednesday, October 22, 2003 12:31 PM

Robert, I complained some time ago that they didn't release patches when they were available. Now they do something different, but IN THAT DIRECTION.

Frankly, I don't care if a sysadmin is angry when he has to patch systems, its his job. I was not happy with all the patches in a continuous stream but not because they were released frequently, but because there were leaks in the first place, AFTER all those code seminars MS held with the developers and the code-reviews.

I as a customer am now handed over to Microsoft's decision if the flaw is critical enough to release a patch immediately. I don't think that's MS decision to make, since the systems I have to keep up running (we're small, so no sysadmin here) are not their responsibility but mine.

Frans Bouma

# re: On Microsoft's new Security Bulletin release scheduling@ Thursday, October 23, 2003 12:54 PM

The patch headache is related to how many servers you're administering. If you have only a few, applying the patches is not a big deal. For companies with 100's or 1000's of servers, it's a nightmare.

Microsoft does release many patches but they are for different applications. Some are for IE, some are for Outlook, some for Exchange, some for the OS and there's an importance level for each patch. I personally only apply critical patches for systems that are connected to the net, otherwise I don't bother. The likehood that a patch breaks something is higher than fxing a non important issue. If it aint broke, don't fix it. I mean if you're not experiencing the problem it's fixing, don't bother.

Abdu

Abdu

# re: Useless programming language constructs@ Friday, October 24, 2003 8:14 PM

The break is necessary because many people would be expecting the fall through. To ignore past languages is to ignore present assumptions. Also it has been a rich area for bugs that is solved by being more explicit. The goto's are more explicit as well, explicit enough that you can insert/reorder things without breaking your code. Logic based on order of appearance is pretty fragile imo.

So I'm happy with the break, the lack of fall throughs, and the resulting compiler errors you get when you don't specifically say what you want...

Robin Debreuil

# re: Short list of non-obvious things determined from the C# 2.0 draft@ Saturday, October 25, 2003 9:30 AM

Partial types are part of VB.NET also, so don't worry about that one.

Paul Wilson

# re: Short list of non-obvious things determined from the C# 2.0 draft@ Saturday, October 25, 2003 2:04 PM

What I didn't find (but hoped for) are different access levels for properties.

I.e. A public property set, but protected property get.

Or didn't I search to spec hard enough?

I sent a mail to "Ask a language designer" about this today... let's see what the response is.

Roland

Roland Weigelt

# re: Short list of non-obvious things determined from the C# 2.0 draft@ Saturday, October 25, 2003 5:08 PM

In regard to properties:
"Properties, events, indexers, and operators may not themselves have type parameters (although they can occur in generic classes, and use the type parameters from an enclosing class)."

By my reading, that means that:

public class Generic<T>
{
T Property{get{...}}
}
is correct while

public class Generic
{
T Property<T>{get{...}}
}
is not. Its not really a surprise considering that collection types would be specified in the class and that there is no mention of paramaterized properties(which really aren't needed, IMHO).

Another thing I like is Method group conversions(page 14, section 19.21.1) which basically allows the compiler to infer delegate types instead of requring the new DelegateName() syntax. So code like
btn1.Click += btn1_Click;
works instead of requireing
btn1.Click += new EventHandler(btn1_Click);
for example. It is simply easier and I suspect will be easier for new users and non-IDE users(as it stands, I just hit tab twice to build an event handler, so its not going to save me much typing).

I am also pleased that iterators aren't strictly restricted to GetEnumerator\foreach keyword like was mentioned early on, but can be defined as any method that returns IEnumerable\IEnumerator(or the generic counterparts), allowing for more creative uses of the feature.

One last gotcha, although its pretty obvious, the spec mentions that using aliases in partial types only apply to the scope they are defined in, meaning that in ClassPt1.cs and ClassPt2.cs the same type alias could refer to different types. Its not a feature so much as a potential problem if not carefully used(I don't like aliases anyway, hopefully this won't cause any extended confusion).

Beyond that, I wonder if this is a complete draft of what they are adding, or if it is simply a teaser spec for the 4 big features we are all expecting, while leaving out maybe some smaller things, like seperate property access levels(which no one knows if it will be there or not, form what I've read, the camp is pretty divided in MS). I wouldn't be surprised if there are other smaller enhancements that won't be announced until the PDC, or maybe not even noticed until someone reads the final spec, but I could also be wrong.

My favorite oversight so far, however, is the spec doesn't deal with default constructor constraint usage too clearly(only place I saw discussion on the inclass syntax was in the first section, not the whole spec) and the lack of non-default constructor constraints.

Daniel O'Connell

# re: DB2 will get .NET integration!@ Sunday, October 26, 2003 4:46 PM

No product p1mping in the comments please. Kingsley: your comment is deleted because of that.

Frans Bouma

# re: Short list of non-obvious things determined from the C# 2.0 draft@ Sunday, October 26, 2003 6:34 PM

There are something I cannot yet understand from Nullable<T> (I hope I'll put my hands on Whidbey very soon).

Implementing NullableTypes I've learned that every .NET built-in type have many differences from one other built-in type:
- String and Boolean types don't implement Operator< and Operator> for good reasons while other .NET built-in types do it
- Single and Double Operator== follow IEC 60559:1989 (IEEE 754) specifications while other .NET built-in types follow CLR specifications for Operator==
- Some .NET built-in type allow conversion that do not make sense for other operators (i.e. Int32 have a conversion operator to Double while DateTime don't)
- ...
- ...
- ...

Every type in NullableTypes (or in SqlTypes) implements specific feature to be very very similar to the corresponding .NET built-in type and to follow the Null Object pattern [1][2] avoiding conditional tests for null (if is-null then... else...) to spread like a disease in the source code.

What I cannot yet understand is how Nullable<T> can be full featured (as SqlTypes and NullableTypes) while C# generics don't implement 'user specializations' (i.e. enable implementation of Nullable<Double> from Nullable<T> adding specialized members and behaveour)?

ciao (luKa)
----

[1] Test-Driven Development - Kent Beck - Three Rivers Institute -
http://groups.yahoo.com/group/testdrivendevelopment/files/TDD17Jul2002.pdf
[2] Refactoring: Improving the Design of Existing Code - Martin Fowler, Kent Beck et al. - Addison Wesley Professional - 1999 - http://www.refactoring.com/catalog

(luKa)

# Without taking credit out of Youkon ORACLE is much better than Frans pouder-discovery text says@ Monday, October 27, 2003 12:17 PM

Frans: as a Oracle newbie at a already grown-up technology like Oracle RDBMS you should know better. I mean: Oracle is an ocean where you should have a nice boat to sail into before stating any decent comments. I'm Oracle certified and have 8 year experience at it, and I don't think the Oracle-Unix (or Linux) combination has anything comparable in the Industry (nor even DB2).

Dig a coupple of years more onto Oracle and you'll find yourself amazed a bit more, even with the tools you so dumbly classified as "Crap".

Cheers.

Luis Moreno Campos

# re: Oracle 9i is already generations ahead and shows a .NET flaw.@ Monday, October 27, 2003 12:37 PM

Luis: your way of stating things is like the way a lot of oracle supporters talk about their database of choice and it was the main reason I was not fond of Oracle. I say some nice things about the application, and the advocates still find ways to critisize me. :) It's like saying something nice about linux and get flamed by a bunch of advocates to start using linux for a few years before saying something nice about Linux... :)

Luis, I'm not a database newbie, far from it, to say the least. I've spend a lot of time reading Oracle's docs (which are hard to navigate and search, I compare them to SqlServer's BOL or MSDN, which are easy to search and navigate). When I compare the tools coming with Oracle with the tools coming with SqlServer, and the docs with the docs of Sqlserver, the oracle offerings fall flat on their face. Query Analyzer of SqlServer isn't the best sql tool there is, but it's miles ahead on any oracle tool that's shipped with oracle (toad is 3rd party).

SqlServer can keep up in a lot of areas with Oracle, its featureset is not that crippled that it is not able to run large databases succesfully. I just wanted to highlight some features that are in Oracle and not in SqlServer and which should be in sqlserver by now. However it seems that I may not comment on Oracle's features before I have worked with it for a long time? haha :) I'm sorry, but that's a little silly, isn't it? :)

But enough ramblings. The more I read your text, Luis, the more I regret I've ever posted this blog entry.

Frans Bouma

# re: DB2 will get .NET integration!@ Tuesday, October 28, 2003 3:21 PM

Oracle is already working on a data provider for .NET. No support for CLR integration in the management system though.

Paul Gielens

# re: It's released! LLBLGen Pro is gold! The next-gen O/R mapper for .NET.@ Wednesday, October 29, 2003 12:32 AM

When will Oracle be available? I need it bad.

Lee

# re: DB2 will get .NET integration!@ Wednesday, October 29, 2003 5:48 AM

Paul: I use ODP.NET already for the oracle driver for LLBLGen Pro (which will be released next week). Its a good provider, but it comes in a 74MB download, which is way too much (the driver itself is just 4MB).

Frans Bouma

# re: It's released! LLBLGen Pro is gold! The next-gen O/R mapper for .NET.@ Wednesday, October 29, 2003 5:49 AM

Lee: It's released on Monday November 3rd 2003, if no serious bugs show up :)

Frans Bouma

# re: Oracle 9i is already generations ahead and shows a .NET flaw.@ Wednesday, October 29, 2003 3:55 PM

The two databases serve different markets. Oracle is for the enterprise while sql server is for departmental and small businesses and for that, SQL Server does a very good job.

You have to be a full time Oracle dba (cost is high) to administer Oracle databases while SQL Server has nice GUI administartion tools, we developers do not need dba's to use it.

SQL Server is eating into Oracle's market and moving into more into Enterprise level while Oracle is still up there.

How many web hosting companies support SQL Server and how many support Oracle? Why is that. Price? Easy of use? ..?

That features you mentioned I can live without. The MVCC and transaction stuff would be handy. No one wants to be in a deadlock.

What happens when you copy a table to another database and server and forgot to copy the sequence object?

A full fledged Oracle .NET provider is Oracle's job not MS. They know their product best. Microsoft doesn't like to support competing products.
I am GM and I built a car that runs. It's your job to "accessorize" it to make it do more than what it was intended to do.

SQL Server was built years after Oracle started. Sybase's market is about 4% even though SQL Server was initially built using Sybase's technology. I think SQL Server is doing pretty good. Oracle and SQL Server are not in the same league. You should compare Oracle with DB2.

When you're a Windows shop, you don't care about crossplatform support.

Abdu

Abdu

# re: Short list of non-obvious things determined from the C# 2.0 draft@ Friday, October 31, 2003 1:34 PM

To address Roland's post - you will be able to have a public get and a private set on properties in whidbey

Eric Gunnerson

# re: VB Developers should learn to take criticism@ Tuesday, November 04, 2003 8:29 AM

You are wrong!

heh, I said it first! :P

Mel Grubb

# re: VB Developers should learn to take criticism@ Tuesday, November 04, 2003 8:31 AM

hehehe :)

Frans Bouma

# re: VB Developers should learn to take criticism@ Tuesday, November 04, 2003 8:35 AM

Frans - I am not here to debate. I just wanted to point out that I was NOT saying anything about the language. Just about people saying vb programmers are idiots. That's quite different. I have never said anything about the merits (or lack thereof!!) of VB as a language.

julie lerman

# re: VB Developers should learn to take criticism@ Tuesday, November 04, 2003 9:08 AM

Julia, again, you miss the point. My blog was about the fact that you even get offended by a remark made about VB.NET developers. Today I wrote VB6 code. That makes me a VB developer too. Do you think I feel offended when a C++ developer says VB/VB.NET developers are idiots? Not at all, because there is no reason for it. I know that I'm not an idiot, you and I know you are not an idiot, so why feel offended?

I get the feeling some people get offended because they KNOW the remark has a certain matter of truth in it, however the remark is not true for them, but for other VB.NET developers, and instead of facing the reality, people feel offended. I think that's the wrong reaction. I've seen a lot of silly VB developers in my life I can tell you that. That doesn't make the remark "VB is a language for idiots" true, because that's a wrong generalization, however among the group of VB developers, there are a lot of very low skilled 'developers', much less than you'll find among C++ developers. Not very weird, because VB is much easier to use than C++.

So instead of projecting the remark on yourself, look at yourself and if you find yourself not the subject of the remark, ignore it! After all, the remark is true for a given group of vb developers and I'm pretty sure you know that too. (not that any weblogs.asp.net blogger is among them, but they are out there)

Frans Bouma

# re: VB Developers should learn to take criticism@ Tuesday, November 04, 2003 9:18 AM

As a professional programmer (regradless of the fact that I use VB), the only problems that I have are:

1) When the powers that be (i.e. Microsoft) comes across with a statement that seems to state that the current language of MY choice is second class

2) When someone (anyone) looks down on me for working in a particular language. Come on now, I have been a programmer for 23 years. I have been a Fortran programmer, an x86 ASM programmer, a COBOL programmer, a VB6 programmer, a C programmer and now a VB.NET programmer. I look back on this list and have to state that they all had there problems, but were almost all THE language of choice at one time or another. Does that mean that they are GOOD languages? In honesty, no. Not one of them. If I had the knowledge, I would design the langauge that I want - and it would be good. ;) However, they got the job that I was hired to do done. Do not look down on me for using a tool to get paid. It is that simple.

David

David Williams

# re: VB Developers should learn to take criticism@ Tuesday, November 04, 2003 9:19 AM

Frans,

First, the comments you refer to were perceived (incorrectly I think, but still this is an important point) as criticisms of VB developers, not the language. There is a huge difference between criticizing a language and criticizing the developers who use it. Your post continues a trend in your blog of conflating those activities.

I agree with your point about the touchiness of VB developers in general, but I also think that your criticisms of VB are delivered in a rude and disrespectful manner. Statements like "the most stupid construct ever created by man" are offensive and unhelpful. If you're really concerned about addressing the problem, make constructive suggestions, backed up with reasoning. It's hypocritical to decry the flame wars without contributing to a constructive conversation.

John Cavnar-Johnson

# re: VB Developers should learn to take criticism@ Tuesday, November 04, 2003 9:36 AM

John, exactly your remarks proof my point. I say something extra rude like "the most stupid construct ever created by man" and you find it offensive. It's a language construct which every language designer would declare "stupid" to begin with. I find it also very stupid.

Now, I can't find that and express that, (I even explain why though, but that aside) without reading remarks like "you express it in a rude and disrespectful manner". Disrespectful to whom? The VB.NET developers? I don't think so.

I used criticism on the language as my angle on the matter, because criticism on the language is the source for TWO problems:
1) people who love the language feel offended and feel the urge to offend/counter the remark. This is useless because that's not the point of the criticism.
2) the language looks weaker with more criticism and therefore people who still pick that language look (in general!) not informed that well.

I ran into 1) when I entered the debate about Refactoring and the renaming of it for VB.NET. Very odd. 2) is a main source for the prejudice (!) that VB.NET developers are less skilled than developers using other languages. That's why I picked that angle.

And I will keep on stepping on VB.NET developer's towes by expressing bad things in VB.NET in a more expressed way to make my point (but always argumented). The reason for that is that I'm pretty sick of it when I try to express a flaw in VB.NET nicely with arguments (like I've done in the past several times) I still get the mud thrown over me. People suddenly accuse me of starting language wars... Now, if I could avoid VB.NET for the rest of my life this wouldn't be a problem, but I can't. I have to use it from time to time.

And this blog was not about the flaws in VB.NET, but the fact that some VB.NET developers think they have to feel offended because Mr. Box finds them underrated developers (in general) while he perhaps was refering to the group of VB.NET developers who really doesn't have a clue what software development is all about (and sorry, but that's a reality).

Frans Bouma

# re: VB Developers should learn to take criticism@ Tuesday, November 04, 2003 9:54 AM

Frans - You are right about the fact that I (and some others) are being (wait - no - "was" - because I will no longer be!) overly sensitive. I did happen to write about that in my post last night saying "i'm not going to worry about that anymore because I know I'm good at what I do". So your point is completely taken in that regard. On a lighter note, understand that before .NET, I had never really had so much involvement with non-VB developers. So hearing all of this opinion so much in the past few years was new and it just seemed to pile on which is why I and maybe others felt so much pain all of a sudden. If you look at Carl Franklin's comments in one of those posts, he too, says "aw c'mon Julie get over it". He's been hobnobbing with non-VB developers for years and so he was used to it.

julie

# re: VB Developers should learn to take criticism@ Tuesday, November 04, 2003 10:05 AM

You want to talk about stupid language constructs? OK, here goes... the whole semi-colon 'thing' that every C based language uses (oh and don't forget pascal based). Why do I have to tell a language parser where the end of line is? Just because all of these languages do this doesn't mean it's correct. At least with VB, I only have to (on rare occasion), use the dreaded underscore character.

Now, on to another point, it's not about taking critisism for being one type of developer or another. When is the last time you heard "c# developers are idiots" or "c# sucks"? Lemme see... you probably haven't. VB.NET developers are usually respectful of not being critical of other languages. Now you might say that this is because VB.NET developers "know that other langauges are superior". I don't believe this is true. I think that VB.NET devepers have a completely different mindset... one that is focused on getting the job done. Not one of being some technically superior snob who has joined the latest fad (yes, I just called C# a fad).

I use every mainstream language I can get my hands on. VB.NET, C#, C++/ATL/MFC, Managed C++, Delphi (at one time), VB6, and Java. I can tell you that there are things I hate about every single one of these. There are things that I think are idiotic from my perspective, but I'm not going to blab this because I have enough respect for the language designers and their specific target audience not to do so. I'm just not that target audience for the whole pinky finger gymnastics associated with semi-colons and squirly braces. I also like seeing End If, Loop, End While, End Function, End Sub.

I don't consider myself thin skined concerning being bashed around for being a VB.NET developer. However, I will be more than happy to put on a pair of gloves and enter a ring for a good fight if something someone says is completly off base concerning VB.NET. For example, the underscore character... as stupid as it may look, I prefer it over the alternative. ;-) Also, your ignorance is showing about VB.NET when you point out the 'On Error *' language construct. This is partially in there for allowing a path to transition to VB.NET from VB6. No real VB.NET developer would choose to use On Error after learning about Try/Catch; unless for some very specific and rare instance. Do I like On Error... no... I've never liked it. However, I look at it in the same manner as those stupid short stubby screw drivers you probably have in your toolbox. There are those rare times when you actually need that stupid tool ;-)

Cory Smith

# re: VB Developers should learn to take criticism@ Tuesday, November 04, 2003 10:05 AM

Frans,

I'm starting to feel this is a hopeless conversation. If you can't see that phrases like "most stupid [insert anything here] ever created by man" are rude and offensive, then I don't how to get through to you. In this case, you're being rude to the designers of the language.

Think about this, many people are able to discuss the strengths and limitations of various languages without starting flame wars, but you say you "get mud thrown over" you. Perhaps, it's not just the oversensitivity of VB developers, but it's also your tone that invites the "mud".

As long as you engage in guilt by association, you will get a pretty strong reaction from people. If I were to go around complaining that people named Frans are rude, self-important, close-minded, and bad spellers, I wouldn't just be insulting you, I would be insulting people I've never met. Now, I wrote that sentence in an effort to help you see how your posts seem to others. I do not judge you or anyone else on the basis of a few comments on a blog. I don't think you are really any of those things, but you come across that way to me when I read your posts. If that's the impression you want to leave, then that's fine. However, if you want to leave a better impression with people, a little more civility might be called for.

John Cavnar-Johnson

# re: VB Developers should learn to take criticism@ Tuesday, November 04, 2003 10:08 AM

Julia, thanks for this comment :)

You got to believe me, that I once also got very offended when some C++ person told me VB was a language for dummies, while that person didn't even finish his CS study on a university...

But you get use to it, and it's not worth the trouble. It's like getting offended when some Linux Sysadmin tells you that windows sux and is used by stupid people. Who cares! It's an opinion like there are so many in this world.

Frans Bouma

# re: VB Developers should learn to take criticism@ Tuesday, November 04, 2003 10:16 AM

Cory:
"You want to talk about stupid language constructs? OK, here goes... the whole semi-colon 'thing' that every C based language uses (oh and don't forget pascal based). Why do I have to tell a language parser where the end of line is? Just because all of these languages do this doesn't mean it's correct."
True. In fact, when you forget the ';' it will tell you exactly where you forgot one. :) I'm all with you here :)

But moronic language constructs was NOT the point of the blog, it was a tool to illustrate something ;)

"I think that VB.NET devepers have a completely different mindset... one that is focused on getting the job done. "
This is generalization, the same kind as "VB.NET developers are less skilled". I don't know why a lot of VB.NEt developers are not that critical towards their own language, perhaps because a lot of them are also not critical towards Microsoft or the OS they're using. Being critical using arguments isn't bad.

"No real VB.NET developer would choose to use On Error after learning about Try/Catch; unless for some very specific and rare instance."
I fear that that isn't true, at least not in the situations I've been in with VB.NET and other developers...

However also you feel it disrespectful when you find something stupid about a language. You also think in a framework where criticism is something bad I get the feeling. Don't. Criticise what should be criticised, with arguments. Only THEN ISV's know what to change to improve their products.

Frans Bouma

# re: VB Developers should learn to take criticism@ Tuesday, November 04, 2003 10:23 AM

"If you can't see that phrases like "most stupid [insert anything here] ever created by man" are rude and offensive, then I don't how to get through to you. In this case, you're being rude to the designers of the language. "
Sorry? It's a free country, and I've placed an argument withthe statement why the "_" (the space required in front of it not mentioned) is stupid. If that's good design, I don't know what's bad design.

Besides that: YOU feel offended by it. Now, THAT's the whole point of it. Not the argument of that silly underscore, it's there, it will be there, get over it. The point is: YOU get offended by reading that comment on VB.NET.

Now, John, think about that for a change. WHY are you offended? Because I say something rude about a given piece of software you didn't design and which is rude for the designers which you aren't? Isn't that a little odd :)

I hope you now understand what the point of the blog was: NOT the vb.net flaws (or the C# stupidities for that matter) but the weird reactions some people show when they read criticism about their language of choice or a generalization remark about users of a piece of software they also apply to because they use it once in a while.

You may keep being offended by the 'rude' remarks I made, you keep proving what I ment.

Frans Bouma

# re: VB Developers should learn to take criticism@ Tuesday, November 04, 2003 11:24 AM

Firstly, I agree about "_". It drives me nuts. However, the alternative is to end every statement with a ";" which is not necessarily any better.

Secondly, I agree that the differences are just a matter of preference. The case sensitivity of C, C++ and C# has annoyed me for the last 15 years or so. On balance, I prefer VB.NET for this reason, but I admit it is not important.

Thirdly, even if VB died out, it would live on in C# and Windows Forms. The Windows Forms programming paradigm owes more to VB than, for example, to MFC or 'traditional' Win32 programming.

Fourthly, VB6 programmers have a right to be angry with MS, because they have been badly treated. For many big projects, migration from VB6 TO VB.NET is unrealistic, but VB6 has been discontinued. What other manufacturer would dare treat its users like this?

Lastly, this reminds me of people making fun of Bob Dylan 20 years ago. Bob had the staunchest of fans, but was easy poke fun at.

So basically, I agree. Loosen up VB.NET programmers.

Phil

# re: Oracle 9i is already generations ahead and shows a .NET flaw.@ Tuesday, November 04, 2003 11:57 AM

anyone who he says that Oracle docs are better than Microsoft's is whacked. Everyone I know gripes about them. The other day I downloaded a Java sample which wouldn't even compile due to a host of syntax errors. This was on OTN. It's a joke. Every morning, the forums are down.

Mitch

# re: VB Developers should learn to take criticism@ Tuesday, November 04, 2003 2:35 PM

Frans,

I never said I was offended. Indeed, nothing you have done offends me. Freedom generally includes the right to make offensive, rude, and obnoxious remarks. I don't have a problem with that, but a wise man once spoke about freedom by saying that while all things are permissable, not all things are beneficial.

The way you expressed your opinion about the underscore says more about you than about whether or not the way VB uses the underscore is a good design. I believe the tone of your comments contributes to the problem you are blogging about. If you want to convince people that you are correct (and, honestly, I don't know that that is your aim), I'm suggesting that you should use different tactics.

John Cavnar-Johnson

# re: VB Developers should learn to take criticism@ Tuesday, November 04, 2003 2:44 PM

IMHO, here's the irony; I've come across many VB.NET programmers (even at the PDC) who hate critisism when something degrading is said about their core platform or their breed of developers, and then there are many C# developers (even at Microsoft) who brag about C# being light-years ahead of VB.NET when they havne't even progressed futher than a "Hello World" snippet in VB.NET. Cribbing about syntax by means of an underscore is no fun and makes no sense to me. On a broader note, (finally) ANY .NET language is as powerful and as resourceful as the other. Live with it!

English is by far the most widely used language in the world but it doesn't make the French or Chinese or Sanskrit dialect any inferior. My point is: guys stop thinking in parallel paradigm.

Alec Hurbert

# re: VB Developers should learn to take criticism@ Tuesday, November 04, 2003 3:09 PM

Beginers All-Purpose Symbolic Instruction Code.
C? It all flows from there.

VB.Net introduced a lot of new constructs, but they chose to give the VB style names instead of using standard terms.
Do the other .Net language rename everything (say J# ,Cobol.Net).

There are two seriously different groups who moved from Studio 6 to Studio.Net:
Those who wanted to stop using Basic and those who wanted to continue using Basic.

I've seen good developers who want to continue using basic and bad ones who were eager to move to c#. There is no fast rule for which will do which.

I think that "..VB.NET devepers have a completely different mindset... one that is focused on getting the job done" is not far off track, but where does that leave c#?


Personaly, I have a very strong preference for c#, its a question of style.

A semi-colon indicates the end of a line of code, of an instruction. I don't like long lines of code, so I really don't like using " _" to say this line does not end.

Have you seen the source code of programs not written in "English"?

Andrew

# re: VB Developers should learn to take criticism@ Tuesday, November 04, 2003 3:17 PM

"Have you seen the source code of programs not written in "English"?"

An analogy my friend .. offtrack but just an analogy :)

Alec Hurbert

# re: VB Developers should learn to take criticism@ Tuesday, November 04, 2003 3:30 PM

Reading all this, I wonder how C# coders will take the "healthy" critism when compared with SunONE/Java.... does C# support checked exceptions, inner classes, cross platform portability or the fact that a class is not the smallest unit of distribution of code? Java has - been there and done that!

Atleast with VB.NET you can deliver the final product quicker. What good is C# in between VB.NET and Java?

java_poet

# re: VB Developers should learn to take criticism@ Tuesday, November 04, 2003 3:44 PM

java_poet: We don't care just as long as you give valid arguments which these are btw. As soon as I personally feel any language or platform beats the one I'm currently working with I'll switch, switch jobs even just to make sure the technology first my personal needs. Yes Frans language, platform to some extends it's "a way of life" but people tend to overreact just to increase their post count.

Paul Gielens

# re: Oracle 9i is already generations ahead and shows a .NET flaw.@ Wednesday, November 05, 2003 1:12 AM

Has Microsoft bothered to fix the feature/bug that you can only have one LONG per table, and that you must code your sql select statements (in ADO etc) in the correct order so that the LONG field is at the end of the query?

I was geniunely amazed when I ran into this bug myself, and after doing some research online, it turned out that a LOT of people had run into this bug, and that Microsoft even acknowledged it in a Knowledge Base article, but didn't feel it deserved a fix/patch. What a great attitude.

Oracle is a dream to work with vs SQL Server having used them both for 5+ years as developer and frequent Sysadmin/DBA on Windows, Linux & Solaris.

wayne

# re: (Dutch) Tot over een uur op de DotNed meeting!@ Wednesday, November 05, 2003 8:04 AM

Ohja, which reminds me dat ik onderweg moet :)

Jeroen

# re: VB Developers should learn to take criticism@ Wednesday, November 05, 2003 8:47 AM

"Atleast with VB.NET you can deliver the final product quicker. What good is C# in between VB.NET and Java?"

It's not VB.NET vs C# vs Java. It's .NET vs Java.

VB.NET and C# are, to all intents and purposes, the SAME THING. At least at the moment.

I don't think about language so much as about the technologies (ASP.NET, ADO.NET, BCL, XML, ...).

I choose to use C# because I prefer the syntax. My colleague prefers to use VB.NET, 'cos he's more comfortable with it. We can work together. I don't think any the less of his skills, because we're both .NET programmers.

Johnny Hall

# re: (Dutch) Tot over een uur op de DotNed meeting!@ Wednesday, November 05, 2003 9:27 AM

Ik sla vandaag over... s'me net iets te ver voor die paar uurtjes. Ga je trouwens ook naar Zweden eind Jan?

Paul Gielens

# re: VB Developers should learn to take criticism@ Wednesday, November 05, 2003 9:30 AM

Alec : I think the language analogy is good, but I don't think that languages are all the same underneath.
Each has hidden assumtions about "reality". A concept may be encapsulated in a single word in one language and yet require several words or even phrases in annother.

I work in a mixed language environment, where I spend more time speaking my second language than I do speaking English.

I have seen a lot of code written by people who's first language is my second, and for the most part, the quality of their code is tied to whether they try to write code in "English"
or not. They try to mix maps.

I've never worked in a non-English based programming language, and I pretty sure if I did, I would have the same quality issues if I tried to code in "English" in that prog. lang.

I'm not a linguist, but from what I hear, Esperanto is supposed to be "the best language"...

Andrew

# re: VB.NET developers, continued@ Wednesday, November 05, 2003 9:33 AM

Let me add my vote too.

MS fix it right...

WORSE case, make the menu optional and allow VB'ers to enable it via the options. Don't make it completely unavailable.

And don't make us have to hack a way to enable. You KNOW we will find a way to make it, or like functionality available. So instead of the standard, we'll have a bunch of custom written solutions (think XML comments in VB)...

MS PLEASE don't make us go through this...

Do it right, treat you VB.Net programmer like they are professionals...

Greg

# re: (Dutch) Tot over een uur op de DotNed meeting!@ Wednesday, November 05, 2003 11:02 AM

Delft is zo ver weg als je in Grun'n woont :(

Zef Hemel

# re: VB.NET developers, continued@ Wednesday, November 05, 2003 11:03 AM

I 100% agree. MS's job is to raise the lowest common denominator, not pander to it.

Robert McLaws

# re: (Dutch) Tot over een uur op de DotNed meeting!@ Wednesday, November 05, 2003 1:22 PM

Paul: Ja! :) Jij bent ook uitgenodigd door Jimmy? Lijkt me wel erg interessant :)

Zef: inderdaad :)

Het was overigens erg interessant. Dino's verhaal was erg indepth maar wel leuk. :)

Frans Bouma

# re: VB.NET developers, continued@ Wednesday, November 05, 2003 5:56 PM

If I can ask, how exactly is implying that VB.NET developers require their IDE to teach them a term treating them like professionals?

Daniel O'Connell

# re: VB.NET developers, continued@ Thursday, November 06, 2003 6:15 AM

Daniel:
Not all terms of an industry should be known by everybody. However when you use a given set of tools and you don't know the correct name for these tools, you don't really know that you use them when you see/hear/participate in discussions about these tools. Also: all C# developers will be confronted with the term, will learn what it means. All VB.NET developers will not, and will thus not be forced to learn what it means.

Frans Bouma

# re: VB Developers should learn to take criticism@ Thursday, November 06, 2003 12:32 PM


VB.NET developers are under rated. I mean they are paid less for the same project than C# developers. C# has a prestige associated with it. I am just talking based on real life.

abdu

Abdu

# re: VB.NET developers, continued@ Thursday, November 06, 2003 11:33 PM

> Not all terms of an industry should be known by everybody.

I would say will, not should. Should implies that there are things that people have not only no reason to know, that they shouldn't be told, excluded if you will. That is BS in my opinion, and isn't that what the whole argument is about, people suggesting that there is a term that VB developers shouldn't know?

However, I expect any decent VB.NET developer to be capable of learning on their own, just as I would any C++, Java or C# developer. Claiming that only via IDE support wil the VB developrs gain knowledge of refactoring or any other technique suggests that people(or you atleast) don't think VB coders actually try to learn and stick strictly to VB and its IDE. Any developer who would be involved in such a discussion should be well aware of what the general term means, even if it is not in the IDE. Implying otherwise, to me anyway, implies that the users of the IDE are not as dedicated as the rest of the industry.

Daniel O'Connell

# re: VB.NET developers, continued@ Friday, November 07, 2003 5:56 AM

I ment 'Will', typo. (I'm not a native English speaker).

I also expect any developer to do a fair amount of learning but that's not the point. The point is that when you use a feature X, you should know hte feature you use is named X and not Y. As you can't know everything (a lot of C# developers will learn about refactoring whenthey open the IDE I'm sure), and when you DO use X, it is not more than appropriate the IDE, the documentation and examples/tutorials show you that the feature X is called X and not Y. That's the point.

Frans Bouma

# re: VB.NET developers, continued@ Friday, November 07, 2003 1:14 PM

My own experience is that many .Net developers don't know what refactoring really is, unless they also know what unit testing and design patterns are. It's not a language thing as far as I can see -- I have a client who is a VB.NET shop that, because their coders to test-first development using nUnit, can refactor code to their heart's content because a good suite of unit tests will tell you if you messed anything up in your refactoring.

I also know tons of C# coders who don't write unit tests, so therefore any "refactoring" they do is essentially just mucking about with the code.

--Bruce

Bruce Onder

# re: (Dutch) Tot over een uur op de DotNed meeting!@ Saturday, November 08, 2003 4:33 AM

Ja, zeker wel interessant! Ben alleen nog aan't tobben (heb tegen die tijd een oplevering en verhuizing van kantoor) zelf rijden of vliegen, hmm. Zin om iets te organiseren? Wel zo gezellig.

Paul Gielens

# re: Here's a (big, bad) difference between VB.NET and C#@ Wednesday, November 12, 2003 5:30 PM

You don't have to look THAT far to find crippling differences - lack of C variable types (such as unsigned bytes, words etc) makes VB.NET totally unusable for many low level scenarios such as encyption, hashing, CRC algorithms, etc.

Addy Santo

# re: Here's a (big, bad) difference between VB.NET and C#@ Wednesday, November 12, 2003 6:53 PM

This might sound stupid, but how would you go about doing private implementation of an interface? Did you mean not declaring the interface name in the class declaration and just writing out the methods of the interface as regular methods?

Roy Osherove

# re: Here's a (big, bad) difference between VB.NET and C#@ Wednesday, November 12, 2003 9:03 PM

Well, my guess is that sort of thing would just make Mort's head hurt, so it has no place in VB.

As far ass private implementations:

interface IFoo { void Bar(); }

class X: IFoo
{
void IFoo.Bar() { }
}

elsewhere, you can't do this:
X x = new X();
x.Bar(); // not allowed

but you can do this:
IFoo f = x;
f.Bar();

Mickey Williams

# re: Here's a (big, bad) difference between VB.NET and C#@ Wednesday, November 12, 2003 9:05 PM

ROFL: make that as, not ass

Mickey Williams again

# re: Here's a (big, bad) difference between VB.NET and C#@ Wednesday, November 12, 2003 10:15 PM

Micky, Thanks. BTW, I'm a Mort :) My head isn't hurting one bit, but my pride is a little.

Roy Osherove

# re: Here's a (big, bad) difference between VB.NET and C#@ Thursday, November 13, 2003 2:57 AM

Can't you use shadowing to resolve this issue?
Use the Shadows keyword on the GetObjectData() method. From the Visual Basic Language Reference: "If the shadowing element is not accessible from the code referring to it, for example if it is Private, the reference is resolved to the shadowed element."

Sander

# re: Here's a (big, bad) difference between VB.NET and C#@ Thursday, November 13, 2003 3:03 AM

Sander: No, because you have to specify Implements ISerializable with the class, which is not allowed. :)

Mickey: indeed, that's they way you can do it in C#, and that's the way MS did implement ISerializable on DataTable. Of course that's a bad way to design a class, nevertheless, VB.NET can't 'fix' that, only C# can.

Frans Bouma

# re: Stored Procedures vs. Dynamic Queries.@ Thursday, November 13, 2003 5:39 PM

sql server blows
mysql rocks

jack

# Interface reimplementation@ Friday, November 14, 2003 6:57 AM

Will be supported soon.

TrackBack

# re: Serious ASP.NET Editor flaw lives on in VS.NET 2003@ Friday, November 14, 2003 9:10 AM

First, thanks for a good summary of the issue. Microsoft has had many major flaws in their systems, which is not unexpected considering the sheer volume and scope of them. Professional programmers understand that and can live with it. That's not the real problem. When a major flaw is found by the first person, Microsoft SHOULD be telling everyone about it in any way they can so every single programmer doesn't have to waste time finding it anew. As usual though, they take what can only be described as an immature approach and make a point of minimizing it to the point where you have to search and search just to get the REAL scoop from some user posting. "Flaw? What Flaw? Oh, you mean THAT flaw. Well, yeah, of course we knew about it and now that you mention it, let me tell you all about it..." Just to drive home the importance of this particular flaw, it isn't just that the text gets bunched together in an unreadable format. The formatter actually rearranges the tags within a control's specificatins. For me, I have a dropdownlist on a page used to edit a record, and set the datasource using a function in the codebehind page. I also set the current index value using another function. So I have a "datasource =" and a "selectedindex =" within the dropdownlist tags, so when the screen comes up, the dropdownlist contains all the available selections and is sitting on the one currently selected for that record. The reformatting actually moves the selectedindex IN FRONT OF the datasource specification. Since the entire point of a tagging system is that it is NON-POSITIONAL, what moron even considered altering the coding in this way? The interpreter is also flawed, because it takes in this new line of code and reconciles the tags from left to right! So basically, my "adjusted" code now tries to set the selectedindex of a datasource that doesn't exist yet, and the program crashes. As for Mike's statement, give me a break. This is ASP.NET, the entire foundation of which is that editor. It's obvious from the example I just mentioned that the reformatting is reading the controls in by tagset, analyzing them for "reformatting" and writing them back. It just happens to be totally screwing up the "writing back" part. Now we're being told that the integration is too deep? All I can say is, Mike, stop treating the experienced programmers of the world like idiots. It's more likely that Microsoft has done what they usually do, which is to put out a brand new product with version "1" before it is really ready, to beat the competition and coordinate with their other schedules. Then they move almost all the knowledgeable staff onto the Version 2 project and leave a support staff handling updates and bug-hunts and as Mike is doing, just plain stalling until Version 2 is ready. Here's a few things Mike could do in a quick service pack that are really easy: Since there are checkboxes that supposedly control the autoformatting in Tools/Options, but DON'T, take them out. It just means making them invisible and they must have somebody there who can handle that. When this service pack is installed, include a document that completely describes this problem and all of the other ones like it that I haven't personally found yet. Since that is just typing, they should be able to handle that as well. Unless of course, their keyboards are too deeply integrated into their editors....

FC

# Stored Procedures versus Dynamic SQL - the old debate...Frans Bouma's take...@ Tuesday, November 18, 2003 1:11 AM

TrackBack

# Why stored procudures can be evil?@ Tuesday, November 18, 2003 2:11 AM

TrackBack

# Stored Procedures@ Tuesday, November 18, 2003 2:33 AM

TrackBack

# Stored procedures vs Dynamic SQL@ Tuesday, November 18, 2003 2:53 AM

TrackBack

# Stored Procedures or not?@ Tuesday, November 18, 2003 3:20 AM

TrackBack

# re: Stored procedures are bad, m'kay?@ Tuesday, November 18, 2003 6:57 AM

My words :-)

Thomas Tomiczek

# ASP.NET dynamic SQL vs. stored procedures - what's right?@ Tuesday, November 18, 2003 6:58 AM

TrackBack

# re: Stored procedures are bad, m'kay?@ Tuesday, November 18, 2003 7:42 AM

Sorry Frans - I have to respectfully disagree, life without Stored Procedures is silly.

Duane

# re: Stored procedures are bad, m'kay?@ Tuesday, November 18, 2003 7:49 AM

Duane: can you elaborate on that a bit? Just stating it's silly great but not a solid argument.

That said, I write a stored procedure sometimes, the last one I wrote was a sequence emulator stored procedure. However the occasions I have to are countable on one hand, while I do database development every day.

Frans Bouma

# re: Stored procedures are bad, m'kay?@ Tuesday, November 18, 2003 8:10 AM

All I can say is that I respectfully disagree 150%! Stored Procedures do provide a dramatic performance boost over dynamic SQL when needed. A generic DB access component is a disaster waiting to happen, as it depends on a properly designed database, which no one will ever create.

Wally

Wallym

# re: Stored procedures are bad, m'kay?@ Tuesday, November 18, 2003 8:17 AM

Taking a binary approach is silly, you can't sriously be saying that for every occasion dynamic Sql is better - a few instances where I disagree - Indexed Views, these are essentially SPs, and are invaluable in a scalable environment (Indexed views representing an essentially 'static' view on data, updated when the underlying data is). Using Table Variables in SQL Server 2000 from Stored Procedures lets me composite and filter my resultset before returning it to the client app thereby substantially reducing my network traffic, connection usage, memory footprint for the app and therefore vastly increasing my potential scalability. Your argument about using Views is pretty limited in my opinion, Views are not updatable, I can't get a resultset from one SP and based on that, update the data in my view then filter the data in my View to produce the desired resultset - even if I could, I would be storing a HUGE resultset for many operations where I only require a couple of items - Views cannot replace SPs in most circumstances.
Quite simply, I also do serious web application development every single day, 99% of requests to the DB are best served by stored procedures, I have worked a lot with Dynamic SQL in code previously (forced to when using MySQL with PHP / Java), the risk of introducing errors into really quite complex Dynamically built SQL statements is really pretty high - plus it's pretty tricky to debug every possible scrnario unde which the statement may be built.

Scott Galloway

# re: Stored procedures are bad, m'kay?@ Tuesday, November 18, 2003 8:20 AM

Wallym: the dramatic performance boost is not there, because the stored procs are threated as queries which arrive at the sql engine: they are compiled at runtime.

So they're not faster, they are sometimes even slower, because you have to code constructs in the stored proc to add some sort of flexibility (like a bit parameter which is used in an IF ELSE clause. That will force a recompile every time!).

Don't believe the myth, read the docs (Books Online). They're clear on this.

Frans Bouma

# re: Stored procedures are bad, m'kay?@ Tuesday, November 18, 2003 8:26 AM

::All I can say is that I respectfully
::disagree 150%!

Ah, kids playing.

Look, how can you disagree when the documentation says rob is wrong?

How can you disagree for arguments given when you basicaly have NO arguments.

::Stored Procedures do provide a dramatic
::performance boost over dynamic SQL when
::needed

Factually total bullshit.

Stored Prcedures CAN provide a significant performance boost in certain situations when you are able to move processing fom the application layer to the database. Not "when needed" as you say, but "when needed AND when the data processing fits into this condition".

Stored Procedures are NOT significantly faster than dynamic SQL if all the Stored Procedure does is a single INSERT/UPDATE/DELETE.

This is another fact that is well documented (in this little thing called documentation).

::A generic DB access component is a disaster
::waiting to happen, as it depends on a
::properly designed database, which no one
::will ever create.

Careless use of SP's are a desaster HAPPENED. Get this - the generic component may be a desaster waiting to happen, but having hundreds of objects that require some gpoor guy to create and maintain hundreds of methods that are nothing more than simple processing IS A DESASTER THAT HAPPENED.

By the time this poor sould is finished with his little task, other people have already finished the complete application.

SP's are VERY nice in a lot of situations, and every generic layer COULD utilize them actually (not a lot now, but definitly a lot more once YUKON is around). But stating "they are better. Period" is not a sign for maturity at all.

Counter the arguments Frans has put up, or realize that you dont have any good arguments at all.

Thomas Tomiczek

# re: Stored procedures are bad, m'kay?@ Tuesday, November 18, 2003 8:29 AM

Indexed views can be accessed as normal views, by normal SQL. Views are something else than a stored procedure, Scott. Also your argument about connection usage is odd: connection pools will serve you well.

True, it requires some work to get a dynamic query generator right, but once you have one, you don't have to recode it again.

"I can't get a resultset from one SP and based on that, update the data in my view then filter the data in my View to produce the desired resultset - even if I could, I would be storing a HUGE resultset for many operations where I only require a couple of items - Views cannot replace SPs in most circumstances. "
Views are used to control the security issues. SP's are code-statements, views can be seen as static tables, for SELECT statements, FROM clauses and WHERE predicates. you can for example update rows in a table using the FROM clause to filter on a view's data. Views aren't limited, they are as flexible as tables, because they are a view on tables, replacing those tables in logic which would otherwise be performed on the tables. Views don't replace update stored procedures, they can be used to control security where sp's are used to do that.

Frans Bouma

# re: Stored procedures are bad, m'kay?@ Tuesday, November 18, 2003 8:36 AM

sprocs performance increase isn't just due to the precompilation. It is also due to the reduction of round tripping to the client (which isn't cheap), and reduction of network traffic that comes with it (ahh, good times).

As for the security mechanisms, I do a lot of training with healthcare and government bodies, and regulations require them to not give developers access to the underlying tables. Period. I guess you could use views for everything, but you'll have to be writing after triggers to get that to work and at that point you might as well be writing stored procedures anyways.

And most people are doing security for more than two roles. If you are doing security on a column basis for even just five roles, may god have mercy on your soul. You will screw up, you will waste time and you will end up opening more data to people that don't need it. Just like security based on roles is easier to implement, security based on tasks is also easier to maintain and implement.

Of course, that's just my opinion, I could be wrong. It's interesting to see everyone else's opinion on the subject though.

Phil Scott

# re: Stored procedures are bad, m'kay?@ Tuesday, November 18, 2003 8:42 AM

Phil...the round trip argument is pretty much what I was trying to get to with the connection stuff...I also completely agree with your other arguments :-)

Scott Galloway

# re: Stored procedures are bad, m'kay?@ Tuesday, November 18, 2003 8:45 AM

Excellent post. We had a major project at my last employer that had a DBA writing (or at least approving) the stored procs for rather routine CRUD, a junior developer writing wrapper classes around all of those stored procs, and then the application developers only had to worry about consuming those data libraries. Looked great on paper, since this was an n-tier architecture with lots of separation, and we all know that's supposed to make our lives and maintenance easier. The problem was that it did not make anything easier, since nearly every change in the database required at least 2 people, if not 3. These changes also had to be coordinated very well, since anyone done out of sync, or too late, would break the build, and this did indeed happen. I think our DBA felt very threatened when I talked about O/R mappers, but I honestly think these tools would actually finally have given him the freedom to worry about the database design and performance optimization, instead of writing routine CRUD procs. The junior developer would also be freed up to actually become a real application developer, instead of just being another wasted body. So, down with stored procedures -- long live SQL!

Paul Wilson

# Does an OR Mapper need to use dynamic sql?@ Tuesday, November 18, 2003 8:46 AM

TrackBack

# re: Stored procedures are bad, m'kay?@ Tuesday, November 18, 2003 8:59 AM

@phil: 'It is also due to the reduction of round tripping...'

This is not the case, you can use a whole batch of T-SQL commands in a single call resulting in a single network roundtrip, so it is the same number of round trips as if you would call a SPROC: 1!

Marc Hoeppner

# re: Stored procedures are bad, m'kay?@ Tuesday, November 18, 2003 9:21 AM

Marc: Good call on saving the round tripping with multi-statement SQL.

But I would hate to run into this type of code personally. I mean, you are basically writing a stored procedure at that point and hard coding it into your app. Most of my development is in VB, but I would have to switch to C# just to be able to get away with not having to use the dreaded _ and & to build the string together to get that sucker to run, and be maintainable. Once again, my personal preference.

Now as Paul brings up, your opinion of stored procedures really depends on your environment too. I personally would I simply set fire to the building with the three person tag team on the CRUD development.

It might just be the relatively small nature of the projects I've been working on (15-30 tables), but I've managed to escape writing simple CRUD sprocs. Most of my sprocs look something like "AddOrder", "GetOrdersByCustomerID" and things like that. I have been given the power of writing my own sprocs, if I had to go to a DBA to get that done, well, if you've seen kill bill you know the type of violence that would ensue.

The only time I seem to not be using stored procedures is when I'm working with data adapters and datasets. I see no real reason to use stored procedures for the reasons outlined here by everyone else. But in my connected environment land, I'd rather use stored procedures instead of using the work arounds that people have presented here.

Phil Scott

# re: Stored procedures are bad, m'kay?@ Tuesday, November 18, 2003 9:25 AM

Paul: exactly my point.

Phil: giving developers access to stored procs is not helping you a lot. You have to insert/update data anyway, there ARE sp's in the API which do that. So the argument is pretty moot if you ask me, but nevertheless, if you are REQUIRED to do so (even when the arguments for those requirements are not that great) you don't have a choice. If you DO have a choice: think twice.

Frans Bouma

# re: Stored procedures are bad, m'kay?@ Tuesday, November 18, 2003 9:30 AM

@Phil Scott:
::But I would hate to run into this type of
::code personally. I mean, you are basically
::writing a stored procedure at that point and
::hard coding it into your app

Totally wrong.

If you do it right, you write a SQL generator that is able to take advantage of batching, as I do right now with the EntityBroker. Nothing else.

My programs will use batching, but I will never "code a SP into my app". Never.

Thomas Tomiczek

# re: Stored procedures are bad, m'kay?@ Tuesday, November 18, 2003 9:31 AM

@Phil: Is it really that different? - You are going to 'harcode' it anyway: You build your SQL either with Query Analyzer or another tool. When you are done, you type in your SQL code into an editor (=hardcode it) and run the program to get the results. Now, in one case your editor may be the SQL Enterprise Manager, creating a SPROC. In the other case this may be VS.NET and you enter the T-SQL in a VB.NET or C# script. In any case, you effectively 'hardcoded' it!

And I agree the @ really helps :)

Marc Hoeppner

# re: Stored procedures are bad, m'kay?@ Tuesday, November 18, 2003 9:31 AM

Simply wrong. There are things a Stored Procedure can do that would take many round trips for Dynamic SQL.

If you think sending a huge multi-statement query request across the wire is more efficient that a simple SP call - you haven't played with a slow connection much.

I don't know how many times I have found a bug in a Stored Proc, fixed it and did not have to redistribute client code.

Code reuse between applications is greatly enhanced. A list of active employees is made available without having to give rights to the Personnel DB to every Tom, Dick & Harry.

Mike Potter

# re: Stored procedures are bad, m'kay?@ Tuesday, November 18, 2003 9:37 AM

Marc:

How is:
myCustomer.Save();

or
DaoAdapter dao = new DaoAdapter();
dao.Save(myCustomer);

hardcoding sql?
It's not. You require logic to distinguish insert from update, when update, what to update, etc. Nothing is hardcoded. That's the point.

Filtering on entities in the database is dynamic: you formulate your filter right there where you need it. This for example requires 2 arguments. If you want that in a stored procedure, you would add 2 parameters. Another query in your app does the same filter, but with 3 arguments. You have to alter the stored proc or create a new one. Adding a new parameter will break the 2 parameter call. So you have to alter THAT CODE as well. Which is weird, because with the dynamic query you wouldn't have to alter that query.

Frans Bouma

# re: Stored procedures are bad, m'kay?@ Tuesday, November 18, 2003 9:52 AM

Right-on! I've been on the stored proc bandwagon long enough.

Eliminating stored procs is not silly. I'll take a nice and tight database layer over procs any day.

SteveL

# re: Stored procedures are bad, m'kay?@ Tuesday, November 18, 2003 9:56 AM

@Frans:

I was just replying to Phil as he said he feels that using SQL inside code is 'hardcoding' it (if I understood him correctly). So I was just comparing SPROCs to 'hardcoded' SQL inside a SqlCommand, for example :)

Now, if you enter the world of dynamic SQL for CRUD operations you are absolutely right. If you don't use such a ORM tool, you _will_ have to hardcode your CRUD SQL somewhere, either in a SPROC or inside a call to, say, SqlCommand()!!

Marc Hoeppner

# re: Stored procedures are bad, m'kay?@ Tuesday, November 18, 2003 10:01 AM

@Mike:

>Simply wrong. There are things a Stored Procedure can do that would take many round trips for Dynamic SQL.

Care to share an example?

>If you think sending a huge multi-statement query request across the wire is more efficient that a simple SP call...

Nobody says that. The point is that a multi-statement query will be _as fast_ as a simple SP call. Not faster, not slower :)

If you work across a 56k modem to your DB, you are indeed working on a different set of problems. In this case, I agree with you that even the few extra bytes like a few hundred bytes of T-SQL code may add up.

Marc Hoeppner

# re: Stored procedures are bad, m'kay?@ Tuesday, November 18, 2003 10:02 AM

Marc: hardcoding crud statements is not something you have to do. Using a dataset for example, you can create your insert/update statements on the fly. The data you have to use in an insert/update statement lives somewhere, you can use that to create the statement. Using a generic block of code you can reuse.

Frans Bouma

# re: Stored procedures are bad, m'kay?@ Tuesday, November 18, 2003 10:11 AM

So, when is your Database Object released? :P

Nielsz

# re: Stored procedures are bad, m'kay?@ Tuesday, November 18, 2003 10:13 AM

Marc, you understood me correctly. Just poor wording on my part. At 10am my brain has flipped it's "write coherent" bit on.

Of course it isn't that different, it is just a matter of preference for me. I'd much rather have that code as stored procedure on the server than on the client, that's all. And as Mike said, depending on the type of connection sending a 2000 byte sql statement vs a 20 byte stored procedure name might add up depending on the architecture and the clients needs.

O/R tools, and dynamic sql generators are always great tools to have, and if I have access to an easy to use and powerful one I'd take that any day of the week over writing sprocs by hand. But not everyone has the resources or even the need to have such a tool on hand.

I can't see how anyone in this case has been totally wrong or how one way of doing things would be the "right way" over another. Each method is going to have it's pros and cons. I think if you are using an O/R tool or the DataAdapters you aren't going to be seeing any benefits from using stored procedures. But for those who are (god forbid) using DataReaders and sending SqlCommands directly, I feel I'd rather use sprocs for that.

Phil Scott

# re: Stored procedures are bad, m'kay?@ Tuesday, November 18, 2003 10:14 AM

@Frans: Using CommandBuilder?? - This is definitely _not_ a good idea. It may work for simple tables, but as soon as you start to have more complex scenarios, it stops working. 'Complex' scenarios start with using JOINs and multiple PKs etc.

Marc Hoeppner

# re: Stored procedures are bad, m'kay?@ Tuesday, November 18, 2003 10:15 AM

At my company, we have 3 software products that work against SQL Server, Oracle, and DB2 with the flip of a switch. We have built it using dynamic SQL within our code and all 3 have been around for years. These are big apps and, in the end, they are very maintainable.

Imagine trying to sell your product to a company's IT group and saying that it relies on stored procedures. Guess what...the DBA is going to shoot it down because he knows that as new releases come out, it is going to be a huge pain in the ass for them to update and maintain changes to the SP's. Now tell them that they don't have to do anything. All the SQL is managed in the code itself. Well, you know their reaction.

Maybe an in-house application where I know the back-end will always be SQL Server or Oracle or whatever, I would use SP's and love them. That's just not the case for a product-based application. At least in my experience it isn't.

JW

# re: Stored procedures are bad, m'kay?@ Tuesday, November 18, 2003 10:19 AM

Marc: no not using commandbuilder:) Using a component you write yourself (or buy). You feed it the objects it should generate DML for and it generates that DML, including parameters. Execute that and you're set. Cache the result on the client if you will so you don't have to regenerate the statement. A dataset has the schema inside itself needed to generate the code you need. (I use the 'dataset' example, since Scott accused me of writing a blog to sell my O/R mapper LLBLGen Pro which is not the case at all :) ).

Frans Bouma

# Dynamisk SQL eller SP?@ Tuesday, November 18, 2003 10:20 AM

I det seneste d

TrackBack

# Ever heard of role-based security?@ Tuesday, November 18, 2003 10:20 AM

TrackBack

# re: Stored procedures are bad, m'kay?@ Tuesday, November 18, 2003 10:39 AM

As far as Paul's comment about breaking client code by making changes to the stored procedures: This is no different than changing the rows a view returns as far as breaking things, and as for parameter changes, the best way to handle this is to add a parameter with a default value that works for everyplace the SP is called except the place that needs the new parameter. A good DBA does not break client code. A bad DBA will mess up any architecture.

Douglas Reilly

# re: Stored procedures are bad, m'kay?@ Tuesday, November 18, 2003 10:45 AM

Pre-compilation of a query plan does not exist, but that is not to say that plan re-use is not a performance benefit. 2nd and future executions of a stored proc will run faster (how much faster depends on your hardware).

A stored proc which gets the last name of a customer by customerid should outperform a straight execution of "select lastname from customer where customerid = 12345". But an external component that dynamically builds *AND PARAMETERIZES* a query (basically runs it through sp_executesql properly) should perform on par with the stored proc. I think that's a point people are missing when arguing against dynamic SQL.

Over-the-network performance benefits of passing "sp_Crap" instead of "sp_executesql 'SELECT crap'" are usually negligible these days with the fat network pipes.

Mikey

# re: Stored procedures are bad, m'kay?@ Tuesday, November 18, 2003 10:45 AM

@Frans

Yepp, like I said, I was not trying to argue against the advantages of using something like ObjectSpaces ;) - But if you don't have that at hand, you are likely to hardcode your SQL code either into a SPROC or inside C# (or whatever) code. JW makes a good point though, that such a tool should be able to support both auto-generated SQL code as well as existing SPROCs as it simply is a requirement for some companies. Still, it doesn't change the general argument that we have here about the technical pros/cons of SPROCs. The business side is still something else to consider on top. On the other side, if you develop a product and deploy your own DB, I definitely want to make sure that the DBA _has no chance in hell_ to 'tweak'/'enhance'/ruin our SQL code ;)

Marc Hoeppner

# re: Stored procedures are bad, m'kay?@ Tuesday, November 18, 2003 11:37 AM

I think you need to address the comments about Round Trips. The biggest aspect of stored procs is that they live close to the data. So, if you are doing simple processing - sure. However, if you are doing complex processing, requiring multiphase transactions - interim result sets (changing logic and flow based on interim result sets) - I don't see why stored procs wouldn't be used. When you need to pass everything out of SQL - you are working on layer (the network layer) that is literally 1000's of times slower then memory. This isn't good. I don't know about apps that you write - but apps that I write tend to have very complex rule implementations - and data manipulation isn't confined to simple SQL statements. They may require many many many nexted transactions - sub-queries, multi-stage processing, etc.

I do agree, however, that sp's are misused for the wrong reasons with regard to performance, security, etc. But, in the real world (architecturally) they are a fact of life. If they didn't represent some level of goodness, why has Oracle been promiting Java in the db for years. Why are we so excited about having managed code live in Yukon? - its all about round trips and reducing network traffic as much as we can. Chatty apps are bad apps.

Joel

# re: Stored procedures are bad, m'kay?@ Tuesday, November 18, 2003 11:40 AM

::If they didn't represent some level of
::goodness, why has Oracle been promiting Java
::in the db for years. Why are we so excited

Because Oracle was always the worst of all databases, from a SQL point of view. Their query analyzer literally sucked - all performance out of the server by being too stupid to see the most obvious things.

So, Java in the database was the way they "solved" this.

::about having managed code live in Yukon? -

Are we? Really? I am not.

::its all about round trips and reducing
::network traffic as much as we can. Chatty
::apps are bad apps.

Not necessarily. You can neutralize - pretty often - most of the impact with a good application server. Not always, though - and then you start hitting the last percentage of gains.

Again on the "Chatty apps are bad apps".

Why d you think a company like Persistence (http://www.persistence.com) has proimoted to be times faster than a SQL database for years? Because it is not always true what you say.

Thomas Tomiczek

# re: Stored procedures are bad, m'kay?@ Tuesday, November 18, 2003 11:43 AM

Some stored procedures are pretty complex and big in size. Having them as sql queries being resent by hundreds of clients is a network bottleneck. They also eliminate round trips. You can encapsulate all your SQLs in one call.

Some SQL statements span different databases across different servers (linked servers). This means these clients need to to have access to these servers.

How come your first LLBLGen used SPs only?

Abdu

Abdu

# re: Stored procedures are bad, m'kay?@ Tuesday, November 18, 2003 11:48 AM

"How come your first LLBLGen used SPs only?"
I wrote that tool in a time when I was fully convinced stored procedures were much better, and way faster than dynamic sql. After I've hit the wall and learned that this is not the case, I gave up on stored procedures. That's why LLBLGen Pro generates all sql on the fly. It still can call sp's if you want to, but not for entity usage.

Frans Bouma

# re: Stored procedures are bad, m'kay?@ Tuesday, November 18, 2003 12:13 PM

@Joel

I don't think anyone is asking to drop SPROCs off the feature list. I totally agree that there are good reasons/cases when you should use SPROCs. The general argument started with Rob saying that you should use SPROCs always and everywhere. That's where many people including myself disagree. But that doens't mean that SPROCs are useless, quite the opposite.

Yukon solves many problems I/we have with SPROCs, for example versioning and multi-developer scenarios, let alone the whole deployment stuff. Still, I think that tools like ObjectSpaces, EntityBroker or the beloved LLBLGen have their merits even in the Yukon timeframe. Using parameterized queries still will keep the action where it should be (on the DB server using SQL) and the few extra bytes on the line surely don't make a real difference for most apps, at least IMHO.

Marc Hoeppner

# re: Stored procedures are bad, m'kay?@ Tuesday, November 18, 2003 12:39 PM

> you should use SPROCs always and everywhere

Please don't misquote me. I did not say this and I clarified it further here:
http://weblogs.asp.net/rhoward/posts/38298.aspx

The main point that I am making is that you should take advantage of the platform you are running on. If there are platform specific features that you can use to better your application than you should take advantage of those features.

Rob Howard

# re: Stored procedures are bad, m'kay?@ Tuesday, November 18, 2003 1:07 PM

@Rob

From your original post:
>At just about every talk I give I always try to make several consistent statements. One of which is: ‘Whenever possible use stored procedures to access your data’.

I think this statement is much to general in nature, so I don't feel I misquoted you saying 'with Rob saying that you should use SPROCs always and everywhere'.

Marc Hoeppner

# Stored Procedures vs. Dynamic SQL@ Tuesday, November 18, 2003 1:19 PM

TrackBack

# re: Stored procedures are bad, m'kay?@ Tuesday, November 18, 2003 1:21 PM

::>At just about every talk I give I always
::try to make several consistent statements.
::One of which is: ‘Whenever possible use
::stored procedures to access your data’.
::
::I think this statement is much to general in
::nature, so I don't feel I misquoted you
::saying 'with Rob saying that you should use
::SPROCs always and everywhere'.

I would say the original statement is cromoinally wrong.

See, "Whenever possible" means "also when it makes no sense". Even when you end up with a simple "select * from table where id = ?" in the SP, this would mean "use a SP, just because it is possible".

Basically, the statement means: use sp's for everything unless you use MS Access or another database which does not know SP's.

The quote from Frans (sorry, Rob) was right.

Thomas Tomiczek

# Stored Procedures vs. Dynamic SQL@ Tuesday, November 18, 2003 1:43 PM

TrackBack

# re: Stored procedures are bad, m'kay?@ Tuesday, November 18, 2003 2:19 PM

Use a stored procedure if the roundtrip savings are worth the decrease of maintainability, flexibility and compatibility. We tend to call this "the zone". "The zone" where business logic is factored tighter and tighter to your db scheme. Besides the people who wrote OR mapping tools probably compared execution plans (SQL server) and must have noticed dynamic SQL is way faster due to SQL server's crappy stored proc optimisation when precompiling.

Paul Gielens

# re: Stored procedures are bad, m'kay?@ Tuesday, November 18, 2003 3:11 PM

I Think that after eight years of keeping stored procedures you become tired of them and you'd rather prefer your comfort than a well designed application.

Rob's got a point on it

Harley Jácome

# re: Stored procedures are bad, m'kay?@ Wednesday, November 19, 2003 4:39 AM

I'm surprised that noone has mentioned the merits of using SProcs in a secure environment yet. For those DB's where complete access security defines the method of data access, SProcs are really the only way to go.

Say for example I have a DB using Windows Auth to restrict who can view what data. The DB is being accessed by three or four different apps. Now on that DB I have something like 100 tables, which I do NOT want the casual browser (using Query Analyser) to be able to view. I therefore need to lock down access to all tables. Access MUST then be made through SProcs. I know - I could just allow access to the tables through defined logins. But what if I need two different roles (Staff vs. Managers - defined by NT Domain groups) to be able to retrieve different sets of data from the same tables? And what if the access levels that particular users have are to changed? For example - a Manager can only view payslips for those employees that work directly for him instead of the whole department? That would require the code of three or four applications to be changed. I'd rather change one set of SProcs...

The point I'm trying to make is that if you are developing an application in which any kind of sensitive/personal data is involved, or where Role-based access to data is necessary, or you are required to ensure that this data is kept secure - Dynamic SQL will not be your best friend. In these instances only SProcs will help. In fact I'd go to say that if you are designing/developing with security in mind from the start, then you'd be daft not to use the in-built security that SProcs offer you.

Mike

# re: Stored procedures are bad, m'kay?@ Wednesday, November 19, 2003 4:49 AM

Mike: the time it takes to create all those stored procedures for each role can also be used to create the views you want. The advantage of that is that you can use views in queries (FROM clauses) you can't do that with sprocs.

People think that in a high-secure environment, stored procedures will be much more secure AND it will take way less effort. This is not true: for each byte you want to return as a select result, you have to write a procedure. That code can also be used to write a view.

Frans Bouma

# re: Stored procedures are bad, m'kay?@ Wednesday, November 19, 2003 5:15 AM

What about writing your business logic in a stored procedure?

Frederik Gheysels

# re: Stored procedures are bad, m'kay?@ Wednesday, November 19, 2003 5:59 AM

What about user defined function which return tables (sql 2000) (view with parametars).
Should we use it Frans,
or we should buy your LLBLGEN Pro.

Crazy Chess Player

# re: Stored procedures are bad, m'kay?@ Wednesday, November 19, 2003 6:02 AM

Depends on what you want to do with the user defined functions. afaik, you can't call them from outside the db.

Frans Bouma

# re: Stored procedures are bad, m'kay?@ Wednesday, November 19, 2003 6:03 AM

::What about writing your business logic in a
::stored procedure?

Perfectly valid approach.

Just dont tell people then that you follow object oriented programming - you are simply not.

Thomas Tomiczek

# re: Stored procedures are bad, m'kay?@ Wednesday, November 19, 2003 6:21 AM

> afaik, you can't call them from outside the db.
I don't think so.
http://msdn.microsoft.com/msdnmag/issues/03/11/datapoints/

Crazy Chess Player

# re: Stored procedures are bad, m'kay?@ Wednesday, November 19, 2003 6:34 AM

Chess Player: I meant calling them as a stored proc directly using a Command object, afaik, you can't do that, it always requires a T-SQL statement which references the function (calling it). Of course you can call them embedded in an SQL statement, like the article shows. (the article is not that correct though, it says stored procedures are compiled and views aren't. Well, the code of a view is placed at the spot where the view is referenced. This means that a stored proc using a view contains in its execution plan the compiled code of the view. At least that's what BOL tells me.)

Frans Bouma

# re: Stored procedures are bad, m'kay?@ Wednesday, November 19, 2003 6:34 AM

>Perfectly valid approach.

>Just dont tell people then that you follow object oriented programming - you are simply not.

Sometimes, you have to make trade-offs between perfectly valid OO and performance.

Frederik Gheysels

# re: Stored procedures are bad, m'kay?@ Wednesday, November 19, 2003 6:43 AM

::Sometimes, you have to make trade-offs
::between perfectly valid OO and performance.

Yes, but these are fwwer than you think.

Becaue the one thing totally ignored so far is that a good OO DAL would introduce a nice little cachin opportiunity, too :-)

AND: the performance tradeoff is only a valid argument when necessary. Otherwise you just blow out the maintainiability of the app for a performance gain you dont use. BAD decision.

But sometimes, for certain simple procedures, it really is good to put them into an SP.

Thomas Tomiczek

# re: Stored procedures are bad, m'kay?@ Wednesday, November 19, 2003 6:55 AM

:Frans Bouma
:Posted @ 11/18/2003 2:20 PM
:Wallym: the dramatic performance boost is not
:there, because the stored procs are threated
:as queries which arrive at the sql engine:
:they are compiled at runtime.

Frans, I respectfully disagree. My experience has been that sprocs do provide a dramatic performance increase. The issue is when is this performance boost needed vs. ease of programming.

Thomas Tomiczek, you sound like a ranting child. I stand by my statements and the standards that I use.

Wally

Wallym

# re: Stored procedures are bad, m'kay?@ Wednesday, November 19, 2003 7:01 AM

"Sometimes, you have to make trade-offs between perfectly valid OO and performance."
Placing BL in de stored procs has nothing to do with OO or not, it has everything to do with separation of functional tiers. Moving BL into the procs is colliding everything together. This was done in the old days too, where queries were executed in a button handler. Worked faster, but was unmaintainable.

Frans Bouma

# re: Stored procedures are bad, m'kay?@ Wednesday, November 19, 2003 7:04 AM

"My experience has been that sprocs do provide a dramatic performance increase. The issue is when is this performance boost needed vs. ease of programming. "
While I most of the time agree with your opinions, I have to say this opinion of yours is just what it is: your opinion, not based on fact, just on personal experience. When I look at the theory behind the sql compiler in sqlserver, I can't conclude anything other than that a dyn. parametrized query and a stored proc run as fast, because both will use a cached execution plan. (yes, dyn. query has to be compiled first, so does the proc, which also will have to be recompiled if you're not careful (and the more code you add to make them flexible the more risk you take to cause a recompile of a stored proc on every occasion)

Frans Bouma

# Stored Procs or Dymanic SQL@ Wednesday, November 19, 2003 7:06 AM

So yesterday a debate surfaced that seemed to have the entire online programming community all worked up. Rob Howard, Microsoft ASP.NET Program Manager, posted to his blog about using stored procedures in SQL server. Many comments both for and against Rob's arguments in his post ensued. Things got a little heated when Frans Bouma stepped into the debate. Frans took his ideas to his own blog, and then you see the entire blogging community step in (via their own respective blogs) to add their own take on things. What a day.

TrackBack

# re: Stored procedures are bad, m'kay?@ Wednesday, November 19, 2003 7:41 AM

::Thomas Tomiczek, you sound like a ranting
::child. I stand by my statements and the
::standards that I use.

This is ok. It does not make your stnadards any moe meningfull, though. And this is what you should care about more, you know. Especially given the number of arguments you give in here.

@Frans:
::yes, dyn. query has to be compiled first, so
::does the proc, which also will have to be
::recompiled if you're not careful (and the
::more code you add to make them flexible the
::more risk you take to cause a recompile of a
::stored proc on every occasion

Even worse. You end up ith having a "with recompile" option on the SP pretty fast. Because all these neat tricks for handling variable numbers of parameters end up killing your performance. The cached plan will be the one selected by the first set of parameters discovered. All other requests goind in will reuse the compiled execution plan, whether this makes sense or not. This can only be avoided when you dont work with "dynamic numbers of parameters".

What I mean are sp's like this:

getUserData (fitlerName, filterCountry)

where both could be null. Depending on the selection you end up with either one or two or zero where conditions.

In a SP you can:
* Make a series of IF statements and HAVE threee statements. Efficient, but ugly as hell.

* Make one statement that uses conditions. Way less code and pretty nice - but basically the cached execution plan is determined by the first set of parameters.

Rsult: With option Recompile, and there you say then "whow, I did reuse plans", becuase you basically had to kill your performance gains.

Alternatives: three different SP's - not better than avariant one, and ugly as hell.

With dynamic SQL the SQL generator can handle this on the client side.

The main problem ith SP's here is that I know a lot of occasions where this dynamic thing turns around and bites you faster than you can say "I was an idiot programming this", and this is basically whenever you show a powerfull query form to the user. One where the user may be able to select multiple conditions. One like, btw, the "Advanced Find" in Outlook (on the Advanced tab, btw.). I would basically say it is nearly impossible to code someting like this in an efficient set of SP's on the database - the most efficient way to do this IS dynamic SQL, as the query is dynamic.

So, as a summary: SP's bite you when you go dynamic in the application. Now, it is up to you to decide to write applications that empower the user big enough that you realize you just got killed by sp's. Naturlly we all do this, right? We all make configurable software, using command patterns etc. Right?

Thomas Tomiczek

# re: Stored procedures are bad, m'kay?@ Wednesday, November 19, 2003 7:58 AM

>>yes, dyn. query has to be compiled first, so does the proc

What's the use of the 'WITH RECOMPILE' clause then the 'CREATE PROCEDURE' in Sql Server ?
I also thought that you could recompile a SP in Sql Server explicitly, so why would the SP be recompiled every time it's called?

/me needs to do some investigation on that subject.

Frederik Gheysels

# re: Stored procedures are bad, m'kay?@ Wednesday, November 19, 2003 8:05 AM

Frederik: WITH RECOMPILE means the proc will be recompiled no matter what on each access: (From BOL) "Creating a stored procedure that specifies the WITH RECOMPILE option in its definition indicates that SQL Server does not cache a plan for this stored procedure; the stored procedure is recompiled each time it is executed"

It can be better to signal sqlserver to not bother to cache the plan and to lookup the cached plan only to find out it has to recompile the procedure anyway. There are situations where a stored procedure will be recompiled anyway because of different codeblocks being executed, temp table usage in IF statements etc.

Frans Bouma

# re: Stored procedures are bad, m'kay?@ Wednesday, November 19, 2003 8:16 AM

You may call this "Product Pimping" (which it isn't, I can only point you to relevant technology based on the content of your posts when such exists), but if you want to back up your observations with empirical data (there are a number of critical variables that affect the claims that you are making either way). Stored Procedures and Dynamic SQL aren't mutually exclusive, they can actually be combined in appropriate situations. simply obtain the Open Source ODBC Benchmark Utility for ODBC or JDBC that we provide from http://www.openlinksw.com/download that pretty much covers all the relevant scenarios. If ODBC or JDBC are in the picture and escape syntax is understood and appreciated, then post utilization of the ODBC and JDBC bench tools you will see that Stored Procedures are a network optimization (reducing RPC count) primarily.

Kingsley Idehen

# re: Stored procedures are bad, m'kay?@ Wednesday, November 19, 2003 8:23 AM

What's so interesting of benchmarking something over ODBC? What's reality for ODBC doesn't have to be reality for native ADO.NET providers. Example: ADO over ODBC doesn't call sp_executeSQL per se when you execute a dynamic statement, SqlServer's client for ADO.NET does.

Frans Bouma

# re: Stored procedures are bad, m'kay?@ Wednesday, November 19, 2003 8:25 AM

Frans ,
You are right about calling
but you can wrap it in sp
and call sp :).
Another usefull article.
http://www.fawcette.com/vsm/2003_09/magazine/columns/databasedesign/default_pf.aspx

What is important for me :
1.don't use concat for making sql on client
2.there is not perf diff in using SP
and sql with params for SQL 7 >>
(you can see that if you compare Pet Shop .NET
last one is done without sql proc )
3.May benfit from OR maping tools is developer productivity ?
(Prove it! for example you can make
Database Layer
Pet Shop .NET with your tool)
and compare number of lines and developer effort.Like M$ has done against Java$.
4.Visual studio .Net is great tool not only
for .NET language but also for working with
MS SQL SP.
5.In my oppinion you must know database
(PL-SQL ,Transact SQL) if you are making
database aplication against Oracle or SQL
6.I did not use OR maping because
I know SQL very well, but if it can save me some time why not?

Crazy Chess Player

# re: Stored procedures are bad, m'kay?@ Wednesday, November 19, 2003 8:38 AM

ChessPlayer:
"1.don't use concat for making sql on client"
Of course not :) I use string builder objects and in some occasions String.Format() (which is also very efficient). I also use AppendFormat() to add as much text as possible in one go.

"3.May benfit from OR maping tools is developer productivity ?
(Prove it! for example you can make
Database Layer Pet Shop .NET with your tool)
and compare number of lines and developer effort.Like M$ has done against Java$."
It took me some time to get the correct petshop database model :) (MS' one is not that great). It's the plan do write teh petshop example, I hope to finish it soon.
"4.Visual studio .Net is great tool not only
for .NET language but also for working with
MS SQL SP."
You gotta be kidding :) Did you ever wrote a SP in vs.net and had a typo? :) "Error", err... yes, but where? :D

"5.In my oppinion you must know database
(PL-SQL ,Transact SQL) if you are making
database aplication against Oracle or SQL"
No. With an O/R mapper this is totally abstracted away. The only think that is very handy to have is a relation graph, thus which entities are related to which entities. But you can print that using enterprise manager.

Frans Bouma

# re: Stored procedures are bad, m'kay?@ Wednesday, November 19, 2003 8:58 AM

"4.Visual studio .Net is great tool not only
for .NET language but also for working with
MS SQL SP."
I even debug it in Visual studio .Net
5. I think your answer is main reason why
lot of database app fail.
one more link from oracle database guru
author of
"Expert One on One Oracle "
by Thomas Kyte (Author)
http://www.databasejournal.com/features/oracle/article.php/10893_1403591_2
I will quote him
"If you do not understand what your particular database does or how it does it, your application will fail. If you assume that because your application ran fine on SQL Server, it will necessarily run fine on Oracle then, again, your application is likely to fail."

Crazy Chess Player

# re: Stored procedures are bad, m'kay?@ Wednesday, November 19, 2003 9:05 AM

That quote is based on the assumption Oracle supports as much SQL-92 standard statements as SqlServer does (and vice versa). Both have proprietry statements to do stuff (8i can't join ANSI style, 8i/9i don't have FROM clauses in delete/update etc. (delete has 1 from, not 2)...). This obviously will make an app fail.

However I generate SQL on the fly using components that are specialized to do so per database. Thus 1 for sqlserver, one for oracle etc. The code targeting these objects is the SAME (which is the code a developer would write), the sql generated at runtime differs, because the engine used to generate it is different for oracle than for sqlserver. Using the same engine is indeed not handy. :)

Frans Bouma

# re: Roundtrips and the real bottlenecks@ Wednesday, November 19, 2003 9:05 AM

round trips and sql and optimal design:
IMHO....

any design that has the "model" of a conversation (talker,listener and so on)
can have this design issue and should be examined with the same basic logic, adpated to the details of what is implimented.
you can swap sql "round trip" issues with HTTP exchanges, trips in a car and other cases of data exchange.


it all comes back to :
1) how much traffic (total bytes,people,cars etc)
2) over what time range (clock cycles, minutes, days etc)
3) what is the "Latency" induced per trip
( time taken to get there and back + time spent on avg at "there" )

an example is some of the talk about how a "chatty" web service is often a poor design when running over http, to many small messages
sucking up time and bandwidth.

so if you are going to need one data item say per hour then the "tound trip" time is small and not critical.

but if you need say 50 data points every say 1/10'th of a second then fetching them one-at-a-time means that the latency will start to be larger than the actual data you get ....
so then it's time to move to a model where you get back a number of data points in a batch.

based on that plus the 3 items above I think one can start to build a general model for when to look at trip time as the issue to optimize Vs. time spent waiting at one end or the other for the data
0. the client
1. send request
2. server processing time
3. send reply
4. the client has data
if 0 and 4 are not significant issues then 1-3 each should be tested for how much they add to the total trip time.
make them each small and as close to the same as you can when trip time is a problem.

thats my view anyway.

denny

# re: Stored procedures are bad, m'kay?@ Wednesday, November 19, 2003 9:25 AM

Sorry but I agree with him.
One more quote:
"These may seem like surprisingly obvious statements, but in my experience, I have found that too many people approach the database as if it were a 'black box' — something that they don't need to know about. Maybe they have a SQL generator that will save them from the hardship of having to learn SQL. Maybe they figure they will just use it like a flat file and do 'keyed reads'. Whatever they figure, I can tell you that thinking along these lines is most certainly misguided; you simply cannot get away with not understanding the database. This chapter will discuss why you need to know about the database, specifically why you need to understand:"

Remerber EJB and all that object mapping staff
(Top Link)
for java and database.
Good Luck!!
But I don't belive in that:
"No. With an O/R mapper this is totally abstracted away. The only think that is very handy to have is a relation graph, thus which entities are related to which entities. But you can print that using enterprise manager."

Crazy Chess Player

# re: Stored procedures are bad, m'kay?@ Wednesday, November 19, 2003 9:34 AM

You don't believe me? That's fine. I don't see the point in learning SQL when you are not using it at all. The definitions (very important) of what people want are the same for every database. the SQL generated is different.

It's like claiming knowledge of MSIL is a must have to be able to write C# succesfully, or to understand how NTFS works to be able to use the I/O subsystem via System.IO.

Frans Bouma

# re: Stored procedures are bad, m'kay?@ Wednesday, November 19, 2003 10:07 AM

Don't be angry ;).
Let say it this way: Set of SQL generated by your tool is probably subset of what I already generated manually in my stored procedures or sql statements with parameters.
I bet that your tool would not solve some practical problem that I solved with sql.
If the developer uses your tool and does not know SQL in my opinion he ( or she) will sooner or later has unsolvable problem that require SQL.
In my opinion everything you can do in IL you can do in C#, which is not true for OR mapping tools.
C# = IL
SQL > LLBLGen Pro



Crazy Chess Player

# re: Stored procedures are bad, m'kay?@ Wednesday, November 19, 2003 10:14 AM

Well, for DML, not really. For special selects, I agree, you can never mimic RDBMS native functions well enough, however dyn sql engines can get very close. It depends on what you need and besides aggregates, you don't need a lot of specific SQL statements a lot in a *LOT* of situations. for the rare situation that you do, you can fall back on creating a view or indeed a stored proc, but these situations are rare.

Frans Bouma

# re: Roundtrips and the real bottlenecks@ Wednesday, November 19, 2003 10:28 AM

Hi Frans,

Typical, I'm away at a conference for one day and you start such an interesting discussion which I now enter so late.
:-)

I have to confess that I haven't had time to read up on all the comments from yesterday, so with the risk of repeating what have already been said, here's a couple of comments.

Something I'm worried about is to have long transactions and one way of shorten them, is to reduce the number of roundtrips within them.

Another thing is that I like to use stored procedures for persistence logic, especially the CUD part of CRUD. An example of this is if one class is split over several tables.

I guess the only answer here is as usual that "it depends". Words like "always" or "never" always - I mean often<g> - triggers an alarm with me.
:-)

Best Regards,
Jimmy
###

Jimmy Nilsson

# re: Stored procedures are bad, m'kay?@ Wednesday, November 19, 2003 11:00 AM

Be sure and read my replies after researching with the SQL team and several outside SQL exeperts:
http://weblogs.asp.net/rhoward/posts/38446.aspx

Rob Howard

# re: Roundtrips and the real bottlenecks@ Wednesday, November 19, 2003 11:12 AM

Hey Jimmy! :) (totally forgot to reply your mail, will do that a.s.a.p, tomorrow I think)

the CUD procs should be written by hand then, to have full control over how they're working, and when the schema changes, how to update them. Not a great solution, IMHO :)

Frans Bouma

# re: Roundtrips and the real bottlenecks@ Wednesday, November 19, 2003 11:17 AM

Or you could re-generate the sprocs after having changed the mapping information in some metadata.

Best Regards,
Jimmy
###

Jimmy Nilsson

# re: Roundtrips and the real bottlenecks@ Wednesday, November 19, 2003 11:22 AM

I agree with you.

That said, using an O/R mapper with just lazy loading seems to be the worst possible case for roundtrips...

peter

# re: Roundtrips and the real bottlenecks@ Wednesday, November 19, 2003 2:54 PM

There are some other reasons you would want to definitely minimize round-trips. It has to do with CPU load on the database server. The DB server is a shared resource(and a very precious one) so you definitely want to minimize the number of calls. Chatty DA layers can be a big drain on DB CPU during heavy load. In our system we have 1000's of concurrent users. We had to do a lot of optimizations to reduce DB roundtrips. For example, when there is a shift change, hundreds of call center reps sign on at the same time. This code path had to be tuned heavily to not pound the database. Much of the tuning involved pushing the data access code into stored procedures and getting much of it in one hit. Even though we returned the same data, we were able to cut CPU utilization by over half.

-Scott

sprughattelutiondotcom

Scott Prugh

# re: Stored procedures are bad, m'kay?@ Thursday, November 20, 2003 6:24 AM

Being quite fond of stored procedures myself, it's been a real treat to read this blog-entry and the following discussion to get some input.

I don't believe there is only one correct way to do things, nothing is just black or white. Different problems require different solutions, and only the specific scenario decides which is better: dynamic sql or stored procedures or perhaps a mix.

That said, I'll provide you (all) with a little more input to shoot at :-)

Firstly, why hasn't anybody produced comparative benchmarks? How can you argue that dynamic sql should be just as fast as stored procedures with no data to back it up - or the other way around for that matter. Books online is a great source for information, but is it absolute truth? (I won't either, btw)

Regarding the use for sprocs, it's true that if you don't write your stored procedures correctly, you may as well use dynamic sql statements. But I think this is because of a common misconception. Procedures are not a place to put business logic and as such there should be no need for conditionals, behavioural bits and the like, and therefore no need for recompilation. If you can't manage without them, your design must be wrong somehow. (Yes, I'm sure there are tons of counter-examples, but in general...)

As for O/R-mappers, my experience is that they're not very good at handling complex relationships, and if you have to write the code that generate the SQL yourself, you may as well put the statements as procedures in the database and write a wrapper (or use someone else's - ie. Microsoft.ApplicationBlocks.Data for .net). Oh, and you can use dynamic discovery of sp-parameters the same way you dynamically discover changes to a table.

In my opinion, the best argument against stored procedures is the "maintainability"-issue. 4+ sp pr. table/object and corresponding wrappers can get hairy to maintain and is a huge source of errors. However, the strength of the approach is that you can test the persistence part of the application systematically - this is a little tricky with generated code. If you find an error, replacement is a matter of rewriting (and testing!) a few lines of code. I guess testability and maintainability have some sort of trade-off relationship, that need to be taken into account when planning the project.

There, my 2 cents
Mikkel

Mikkel R

# re: Roundtrips and the real bottlenecks@ Thursday, November 20, 2003 2:23 PM

For those people who worries about the GUI being tightly coupled with the DAL layer, you can design your system to talk to another layer (DataProvider), whose job is only to batch the dynamic SQL and provide interfaces to the controls in the GUI layer. GUI -> (BAL) -> DataProvider -> DAL -> DB.

Rolly Ferolino

# Now this really bugs me...@ Saturday, November 22, 2003 1:16 AM

TrackBack

# Frans - u r so wrong@ Saturday, November 22, 2003 3:45 AM

sprocs are the way to go.

1. It is a packaging issue - I do not want my
sql code to be buried in all C# source files
all over.

2. I can test them and sql optimize them as batches.

3. Read up on the 'compilation' stuff - you have it wrong.

Plug - My tool (www.dbcodegen.com ) generates
generates C# bindings for sprocs as well.

Ricky

Ricky Datta

# re: Stored procedures are bad, m'kay?@ Saturday, November 22, 2003 7:25 AM

::1. It is a packaging issue - I do not want
::my sql code to be buried in all C# source
::files all over.

With all respect: if you are too stupid tp keep your SQL - even if you use handcoded dynamic SQL - in one place, you should not program but sell fries at burger king. SP's or not have NOTHING to do about keeping SQL in one place. Even SP's need to be called, and when you scatter these calls all over your code, your architecture is as rotten as the sample you gave.

You can ALSWAYS centralize this. SP or not.

::2. I can test them and sql optimize them as
::batches.

Yes, and you can do so all over the place over and over and over and over again, for multiple databases if you want to support more than SQL Server.

Sometimes this is needed. Normally it is the typr of timewaster that makes you loose your job as your company is not competitive enough.

the vast majority of db operations are simple and extremely boring. Linear CRUD operations. The majority of the rest are complex queries. In both cases, SP's dont gain too much.

Unless you start moving business logic INTO the database. THEN you can gain tremendously in some scenarios, but this is an architecutral decision. Just say goodbye to OO.

::In my opinion, the best argument against
::stored procedures is the "maintainability"-
::issue. 4+ sp pr. table/object and
::corresponding wrappers can get hairy to
::maintain and is a huge source of errors.

Absolutly.

::However, the strength of the approach is
::that you can test the persistence part of
::the application systematically - this is a
::little tricky with generated code.

No, it is simply not necessary in generated code. The code generator will not emit buggy code. Period. A good one will even validate that the generated code is working (I work on something like this for our EntityBroker O/R mapper right now - it will go through the database and make sureit's metadata is correct).

So, there simply is way less need to validate anything.

Naturally this is only the case when you get this layer automated, not when you belong to the vast amount of people considering it smart to handlcode the same reetitive routine over and over and over again.

Thomas Tomiczek

# re: Stored procedures are bad, m'kay?@ Saturday, November 22, 2003 11:50 AM

The too-many-cooks argument against sprocs was valid at one time, but code generation now negates it for most cases.

I use CodeSmith to generate sprocs and DAL classes against tables and it not only makes the job cake, it makes coding against the tables (via the classes) trivial. I shaved at least a week worth of manual code on my last project this way. It took all of two minutes to adjust the templates on this page to suit my needs (to use the connection defined in web.config): http://www.ericjsmith.net/codesmith/forum/?f=9&m=402

The DBA needs to change the structure? Regenerate the sprocs and code, recompile the classes in the DAL namespace. Done. The only code that needs to be touched is code that needs to change anyway. But now all my DAL interfaces are consistent, easy to work with, and provide more functionality than if I had to hand-code each.

Code generation against individual tables means that I use additional queries to translate ID codes into English onscreen (or to do .resx lookups for other languages) -- usually these are the same datasets used for the dropdown lists themselves. And these can all be cached. So I get the advantage of both fewer and leaner queries hitting SQL Server for both my dynamic and static data. The translation happens at the UI layer where it belongs.

I still generate a few specialized relational queries on the fly for certain reports. There will always be exceptions, they can't be avoided. But this approach saves me time in all the usual cases, cutting the time I spend writing repetitive code down to nearly nil.

As for performance, sprocs are faster. I've done time trials. Have you?

Take care,
Eli.

Eli Robillard

# re: Roundtrips and the real bottlenecks@ Saturday, November 22, 2003 12:10 PM

> when for example a webform requests 3 or 4
> batches of data to build the webform's
> content, are these requests bundled into 1
> call?

No, but they should certainly be cached, preventing unnecessary roundtrips. Reasonable use of caches for lookup data seems to make the "Ah, you can't?" paragraph irrelevant.

I'm curious where you recommend lookup data be retrieved -- in chunkier queries or in multiple queries? You seem to be suggesting multiple queries (i.e. keep 'em separate from the DAL) but aren't you caching this data? Why suggest that people accept these round trips as a compromise?

Another question: How many BLObs do you store in databases? Perhaps your needs are different from mine, but whenever possible I (and I thought most folks) keep graphics and OLE-ish objects out of the db and instead store links to the file system; the FS is designed for variable-length data, databases do better with fixed-lengths. Just curious.

Thanks for stirring the pot, it's always healthy to question the standard answers.

Take care,
Eli.

Eli Robillard

# re: Roundtrips and the real bottlenecks@ Saturday, November 22, 2003 12:24 PM

I retrieve lookup data which is not changing a lot at application startup and cache it, in for example the Application object in ASP.NET

Blob retrieval from a db is not slower than from a FS, in fact, the FS in a database is perhaps faster, because it is optimized for data-retrieval. Having blobs in the database can be handy because they get backupped in one go with the database. Also, when you store links to a file instead of the file, the file can be removed/renamed, without violating a constraint. This can hurt your application.

Frans Bouma

# re: Stored procedures are bad, m'kay?@ Saturday, November 22, 2003 12:30 PM

"3. Read up on the 'compilation' stuff - you have it wrong."
Which part of "Quote" do you not understand? I quoted the part from the BOL. If you think that text is wrong, BOL is wrong, not me.

"As for performance, sprocs are faster. I've done time trials. Have you? "
Yes I have, see the links at the top. SProcs are slower in fact in my tests.

However 'in my tests, ABC is faster' is bogus to me when there is no explanation given. BOL tells me SProcs and dyn. queries are not treated differently. Therefore one should be as fast as the other. You may think sprocs are faster, if you can't give a theoretic explanation that is TRUE, don't bother claiming they're faster.

Code generation for stored procs is ok, but then also maintenance sucks: you end up with a lot of procs and when the schema changes, which one to remove? All of them? None? Trust me, with LLBLGen 1.x, which generates procs and classes way before Eric Smith thought it was a good idea, I've learned this the hard way: a hell of a lot of procs, all nice, but unmaintainable.

Frans Bouma

# re: VB.NET developers, continued@ Saturday, November 22, 2003 5:39 PM

Can't post to paul's site as it is broken, so I will post here ;-)

If C# has the menu why not VB - Consistency

Keep Refactoring - That is what it is and thats what we VB developers call it!

Why should "professional" VB developers get any less/different IDE features than C# (and visa-versa ;-)

Are we going to become/thought of as 2nd class citizens again.

Is this all related to the efforts to make VB easier for the "occupational programmer"
http://www.fawcette.com/vsm/2003_12/online/meader/default_pf.aspx
<snip>
Ari Bixhorn: People call these programmers different things, from hobbyist programmers to non-professional programmers, but I think
occupational programmer describes this class of person more accurately. For example, think of the accountant who needs to use a little bit of VB to build a front end to an Access database. We're doing a lot of work in this area in VS.NET, but particularly in VB.NET. What we want to do is put the magic back into the product, to satisfy the needs of all the different developer communities.
<snip>
One step forward, one step back

Check out http://www.xtreme-simplicity.net/
PS The VB message has been there for a lonnnng time ;-(

ChrisL

# Does an OR Mapper need to use dynamic sql? @ Sunday, November 23, 2003 8:20 PM

TrackBack

# Dynamic Queries vs. Stored Procedures@ Monday, November 24, 2003 9:58 AM

TrackBack

# re: Stored procedures are bad, m'kay?@ Tuesday, December 02, 2003 7:23 PM

Yet another religious war:( I'm sick of it!

Don't you guys get it? I'm sure you won't until you read a book like "The design and evolution of C++". You can't just say "Sprocs SUCK, long live SQL" (a guy actually said that:). You can't also just say "SQL sucks, long live sprocs!". It's all about using the one or the other when it is most suitable. If Bjarne had the "C sucks, long live Simula" mindset, C++ would NEVER be the MOST successful language! You want lean and mean near-the-iron code -- use the C subset of C++. Should you want to build an enormous higher level solution FASTER than using plain "old":) C, use the OO features of C++. You want to update 10 tables with one network trip -- use sprocs. You want to build a generic O/R mapper because you're reimplementing it ALWAYS anyway -- use dynamic SQL. What the @#$% is the problem with you guys, huh?

P.S. To calm you down a bit:
I like sprocs, and I like dynamic SQL. I hate sprocs and I hate dynamic SQL. In fact, I hate doing any DB-related work so don't sue me:)

P.S. to the O/R mappers guys here: Don't try to advertise your O/R mappers in such a stupid way:)

Cheers,
Stoyan

Stoyan Damov

# re: Stored procedures are bad, m'kay?@ Wednesday, December 03, 2003 1:45 AM

This one is for the sproc guys:

Are you ALWAYS the one deciding which database will be used? Isn't that again your company and your client's company politics? If the customer chooses MySQL (or Access) exactly what kind of sproc will you write?

This is for the O/R mapper guys:

Excuse me guys, but your O/R mappers can serve a maximum of 70% of the line-of-business applications that need to be build. I know it's OK for your companies and you could live with that, but the rest of us are building applications that are orders of magnitude more complex than Northwind & pubs, and more often than not, a generic solution is not a solution at all.

What happens if your O/R mapper should support Access, SQL Server and Oracle? I'd rather use/invent a pattern which allows me to write specific code for each DB (but to have the same code in the BL) than use a generic solution. For example, if I have to insert N rows in a single query, I'd use Oracle's arrays, SQL Server's XML support and a good old "for" loop for Access. What about that? What about if I have to cache data? What about if I have to perform virtual locks on the data (even with the disconnected ADO.NET)?

Cheers,
Stoyan

Stoyan Damov

# re: Stored procedures are bad, m'kay?@ Wednesday, December 03, 2003 2:43 PM

Wow, the more I read about this... the more I just want to use object serialization and keep my data with my object and forgo the db altogether... ;)

@Stoyan: Agreed, use of SPROCs or DynSQL really depends on the situation at hand.

Bill Priess

# re: Is it still allowed to have critisizm on Microsoft here?@ Saturday, December 06, 2003 9:40 AM

Hi Frans,

exactly my feelings and that is why I moved my blog (http://weblogs.asp.net/mspedding) to http://www.mjs-solutions.com/mjsthoughts

Also I wanted to have freedom to be able to express my thoughts and provide constructive criticism as well as to write about other subjects.

I think you will not be the last to move. Sadly it is possible that weblogs.asp.net will simply become blogs.gotdotnet.com

Martin

Martin Spedding

# re: Is it still allowed to have critisizm on Microsoft here?@ Saturday, December 06, 2003 9:49 AM

Company A, company B who cares...? Microsoft sux Linux rules or was it the other way around ;) I don’t see why (considering you have valid arguments) posting something anti-Microsoft wouldn’t get accepted in this community. The flipside is we receive good .NET related information from these guys and that is exactly the target Scott is aiming for.

Paul Gielens

# re: Is it still allowed to have critcism on Microsoft here?@ Saturday, December 06, 2003 9:59 AM

Paul, it's not that MS guys shouldn't be here, it's that with all the blog material expressed HERE, it looks like there are only positive things to blog about, when it comes to Microsoft's material. I don't think it is appropriate to babble about something that's not so good when the rest is just venting what corporate policies dictate them. (look at the recent new postings... sign up for Microsoft seminar bla etc..)

Frans Bouma

# re: Is it still allowed to have criticism on Microsoft here?@ Saturday, December 06, 2003 10:06 AM

I forgot to mention I normally skip the main feed to dis lead my eyes from the pro-Microsoft, Interscape Technologies etc writings.

Paul Gielens

# re: Is it still allowed to have criticism on Microsoft here?@ Saturday, December 06, 2003 10:08 AM

I will repeat what I said elsewhere. This was always a Microsoft site. If you don't like it, set up your own. I think it's good for Microsoft people to be here, as it increases the content and number of knowledgable people here.

And more good content means more people reading. And re the Microsoft criticism, even Scoble criticises Microsoft and he works there!

Just FYI

Registrant:
Microsoft Corporation (ASP67-DOM)
One Microsoft Way
Redmond, WA 98052-6399
US

Domain Name: ASP.NET

Administrative Contact:
Gudmundson, Carolyn (GPIIZCVTVI) domains@microsoft.com
One Microsoft Way
Redmond, WA 98052
US
(425) 882-8080 fax: (425) 936-7329
Technical Contact:
MICROSOFT CORPORATION (EPMKOEAUSO) msnhst@MICROSOFT.COM
One Microsoft Way
Redmond, WA 98052
US
425 882 8080 fax: 206 703 2641

What's new?

matthew

# re: Is it still allowed to have criticism on Microsoft here?@ Saturday, December 06, 2003 10:14 AM

Matthew, my blog was here when scott's site was elsewere. Then we migrated to asp.net, something that gave me mixed feelings, but alas.. Now this.

What scoble does, is his choice. I simply don't feel comfortable that I criticize the host of the criticism.

There is a lot of heat and tough debates ahead of us, especially in O/R mapper land related to Objectspaces and MS attempt to kill all O/R mapper vendors. It's sad that this cool blogspace is now also the heart of MS' own blogging: it's like preaching about some christian god in a synagoge.

Frans Bouma

# re: Is it still allowed to have criticism on Microsoft here?@ Saturday, December 06, 2003 10:14 AM

I see no censorship here. On the contrary, I see reasoned criticism all the time, just not obvious anti MS zealotry, although the only prohibition against that is that this sights charter is about .Net, so it might be off topic. If you decide that you want to blog on more personal topics, than you should probably move ... if you want to conduct educated discussion, including criticism, of .Net related topics (and endure occassional and annoying plugs for interscape) then stick around. THIS IS where that criticism will be seen and read by the right folks ....

Brad More

# re: Is it still allowed to have criticism on Microsoft here?@ Saturday, December 06, 2003 10:29 AM

I've never once seen any attempt by MS to censure criticism or debate -- if anything I've seen the exact opposite. I've had opportunities to take the "red pill" and join MS -- and I've clearly stated some anti-MS things in my interviews and dealings with MS. I would move my blog in a second if I wanted to be seen as a Linux/Java developer, but I am mostly a MS developer, so it makes perfect sense to be part of their community. But that doesn't mean I always agree with them, nor do I always state the party line. On the contrary, you're criticisms of MS will be even more read by the right people if you stay here, so please do NOT move.

Paul Wilson

# re: Is it still allowed to have criticism on Microsoft here?@ Saturday, December 06, 2003 10:34 AM

So you'd rather move of to a less popular location with less MSFT employees around to read your views on their products? To me that calls into question your motivation for writing as critically as you do. Do you complain because you want things to improve or do just complain for complaining's sake?

If you want things to improve you probably know as well as I do that proximity is a very important factor in being heard, which is the first step to things actually changing. By blogging on the same website as many MSFT employees you greatly increase your chances of being heard and things actually changing for the better, so why move?

Furthermore I'd expect most MSFT employees are used to be being critized by now and, in general, respond to it very well. I expect one of the main reasons you were let in to the Whidbey early-access program is because you were so very critical of VS.NET or am I mistaken?

Paul Looijmans

# re: Is it still allowed to have criticism on Microsoft here?@ Saturday, December 06, 2003 10:52 AM

(geezz, 3 Pauls ;))
Paul W.: I understand that criticism ventilated on a MS site will be read by more people than when I do that on say dotnetjunkies.com. The thing is: do the postings fit into what's said on the site? With 99% hail and praise postings on weblogs.asp.net, they won't.

Paul L.: I don't care if the site my blogs are on is 'the most popular', so having a blog here makes me part of some 'inner circle'. I also don't 'complain', there is a difference between complaining and having criticism.

I can tell you that within a few weeks I'll probably blog about MS' anticompetitive actions towards O/R mapper vendors. I'm talking about that kind of criticism, stuff that really hurts MS' product sales. Will that be tolerated here, or will that be appropriate? It's .NET related. But it's not that appropriate on a site where the vast majority of blogs are pro-microsoft, at least that's how I feel about it.

I don't think I was let into the whidbey early access program because I criticize, but because I have arguments for criticism. Valid arguments. That's a different thing. It's easy to say something sux. It's hard to tell another person why.

Frans Bouma

# re: Is it still allowed to have criticism on Microsoft here?@ Saturday, December 06, 2003 11:00 AM

Yep, this site should be Weblogs@Microsoft.Net. I don't think I like this feed much anymore. That's why I tend to read weblogs@DotNetJunkies.Com. It's not commercialized, and I find that if there is an article of interest over here, then someone at DotNetJunkies will link to it. I do respect, and like to hear what MS Employees have to say, but it is just covers to many spectrums from Outlook to Longhorn to...

Jim Martin

# re: Is it still allowed to have criticism on Microsoft here?@ Saturday, December 06, 2003 11:17 AM

"there is a difference between complaining and having criticism"

Very true! So what do you want to do: sit in a corner somewhere where nobody hears you and complain, or do you want to be in (what appears to be) the center of the Microsoft blogging universe and direct your critical remarks at the people that can actually change the things you're critical about?

It's not about being popular or being part of an 'inner circle', it about being heard, it's about not running away from a discussion!

Paul Looijmans aka the third Paul

# re: Is it still allowed to have criticism on Microsoft here?@ Saturday, December 06, 2003 11:24 AM

Jim, my thoughts exactly.

Paul III :) That's also a good point, that's why I'm not certain what to do: move or stay.

Frans Bouma

# re: Is it still allowed to have criticism on Microsoft here?@ Saturday, December 06, 2003 11:28 AM

I say criticize all you want.

Raymond Chen

# Moving?@ Saturday, December 06, 2003 11:39 AM

I have the same feeling, Frans. First we moved to http://weblogs.asp.net then it becomes the home for Microsoft employees. This is all justified, but...

It's not a problem about criticizing or not. It's a problem of image. I don't want to be assimilated to someone doing propaganda for Microsoft. From a visitor point of view, I guess weblogs.asp.net has just become too much Microsoft to be in sync with the image we had when it all started at dotnetweblogs.com. weblogs.asp.net is now too tied to Microsoft to sound free.

Maybe the community is shifting, and maybe the dotnetjunkies weblogs look more like what I want. I'll take a look at that.

Fabrice

# re: Is it still allowed to have criticism on Microsoft here?@ Saturday, December 06, 2003 11:40 AM

Frans,

I hope that you'll stay. I enjoy your posts. I you have something to say, say it. Maybe that is how we'll get some lively discussions going with the MS people. I like the idea of them being involved, and I have to believe that the opinions of others should interest them, otherwise whats the point?

Regards,
Paul Speranza

Paul Speranza

# re: Is it still allowed to have criticism on Microsoft here?@ Saturday, December 06, 2003 11:49 AM

Frans,

I agree with Paul. I hope you stay as well. I certainly have felt free to say things that do not follow the MS company line, though certainly the fact that I sgree with what MS says more than I disagree, but I have no concern about being censored in any way. I expect this main weblogs.asp.net feed is lots more popular with folks than any individual feed is likely to be, and I certainly agree you have things to say that I like to hear.

Douglas Reilly

# re: Is it still allowed to have criticism on Microsoft here?@ Saturday, December 06, 2003 11:50 AM

Why don't you like weblogs.asp.net?
This blog dedicated to asp.net and related
and if you have what to say negative on
THIS topic you're welcome...
How I can understand it's official microsoft
politic for now(Longhorn was released solely
for developer feedback for example) so
participate in discussion and blog in other
place about other themes no hesitate.
And of course I'm greatly apprecate MS developers attention on this subject without dubt.
What's the problem mate?

Andrew

# not ASP.NET@ Saturday, December 06, 2003 11:58 AM

Andrew just showed what's wrong. These weblogs were not revolving around ASP.NET and Microsoft only in the first place.

Fabrice

# re: Is it still allowed to have criticism on Microsoft here?@ Saturday, December 06, 2003 12:01 PM

Look at it another way - any criticisms, etc will get to MS real fast as they would be reading this directly! No sales & user support layers here.. :-)

SBC

# re: Is it still allowed to have criticism on Microsoft here?@ Saturday, December 06, 2003 12:02 PM

Exactly! Change the name, break it into categories, that way if a person wants to read the Microsoft Employee Blog then they can subscribe to the Microsoft Employee Blog feed.

Jim Martin

# re: Is it still allowed to have criticism on Microsoft here?@ Saturday, December 06, 2003 12:10 PM

My personal feeling is that you will not have a problem of content as the additions will raise the bar (in a good way) on productive discussions. I think the thing to worry about is content overload. That's why I think Frans' original idea of feed groupings is interesting. A group could be based on an entire blog being in one category (and I think the blogger could choose which one they fit into) or back to the oft-discussed idea of common post categories. Now defining those categories will be a challenge! "MS Bloggers" "ASP.NET Bloggers" "Jack of All Trade Bloggers" "Genius at Work Bloggers" ".NET Novice Bloggers" or even one for people like me "Bloghorrea Bloggers". :-)

julie lerman

# re: Is it still allowed to have criticism on Microsoft here?@ Saturday, December 06, 2003 12:30 PM

Please reread "How to Hate Microsoft."

We're very open to criticism. Now that Microsoft employees are here, I say it's even more open.

http://longhornblogs.com/scobleizer/posts/345.aspx

Robert Scoble

# re: Is it still allowed to have criticism on Microsoft here?@ Saturday, December 06, 2003 12:45 PM

I quote...

"If a tree falls in the woods and no-one is around to hear it, does it make a sound?"

If you run off to some corner of the web, and critisize where no one can see you..well then whats the point?

Stay here, yell and scream and you KNOW you will get some sort of response. Justify your critisizms and back it up with something intelligent and you just never know....

If the 20+ comments above, alone, didnt convince you that your thoughts are being heard every day (and are valued), then I guess you might as well just slink away. ;)

Rob Chartier

# re: Is it still allowed to have criticism on Microsoft here?@ Saturday, December 06, 2003 12:56 PM

I have a weblog here just to talk .NET, not about Microsoft.
However, if I have criticism towards Microsoft (which is healthy for any company), I think they should hear what I have to say.

And a note about the main feed - I never go there, it's just full of people talking about things that aren't really related to .NET. If I find a link to an interesting blog, I read it. If I want to read a blog, I subscribe to it.

Omer van Kloeten

# re: Is it still allowed to have criticism on Microsoft here?@ Saturday, December 06, 2003 1:02 PM

whoops - I was referring to Steve Eichert's suggestion (http://dotnetjunkies.com/WebLog/seichert/posts/4285.aspx) to which ScottW (over there) responded that categorized feeds are on their way...

julie lerman

# re: Is it still allowed to have criticism on Microsoft here?@ Saturday, December 06, 2003 2:30 PM

stop being a little baby!

criticize all you want

Nick Burns

# re: Is it still allowed to have criticism on Microsoft here?@ Saturday, December 06, 2003 2:55 PM

I don't have a blog here but am subscribed to many of the feeds and read the main feed often to see what I may be missing. I love the varying opinions from all of you and I'm not concerned that the MS crew is going to distort that. It's great to see the interaction between the people building the product and those using it.

Regarding MS taking over the O/R world, you should only be concerned if their product is better than yours. Sure, many people will use it as a default because they can easily find it, but others, like me, will do our research and pick a product that best fits our needs. Products like yours are certainly in need so I can understand why MS is building one. By the way, despite all the hype surrounding ObjectSpaces, I recently bought your product and it's working great for me.

Kevin McCallum

# re: Is it still allowed to have criticism on Microsoft here?@ Saturday, December 06, 2003 3:54 PM

::Regarding MS taking over the O/R world, you
::should only be concerned if their product is
::better than yours.

Ah, oignoring reality here?

When:
* MS comes out with a free sponsored O/R mapper (which, btw., CAN be seen as illegal in a lot of countries)
* Bundles this into the core .NET SDK installer

Then there is no reason to be concerned? You should make a reality check on how people think.

* Most people wont spend on a commercial O/R mapper even if it is better.
* There are certain disadvantages a commercial O/R mapper has to overcome (mostly when hunting for hosted environments) due to the fact of not being installed on the server.

::Products like yours are certainly in need so
::I can understand why MS is building one.

Me too. Well, I would understand if MS actually WOULD build a PRODUCT. You may want to look up the definition of "Product" in this regard. Simply extending functionality and givint all existing companies a competitive disadvantage is NOT "fair play".

I can definitly see where Frans is heading - being in the same situation. Our company is also looking into the situation right now, and some of the issues we are discussing here would not make MS happy.


Frans' concerns regarding the situation of this blog is actually very interesting - I have been (and am) daily here, but, I dont really read too many postings here in detail - there is way too much blatant advertising here now.

Thomas Tomiczek

# re: Is it still allowed to have criticism on Microsoft here?@ Saturday, December 06, 2003 4:15 PM

Frans, I don't understand why you would want to move. I've read what you posted but I don't buy it. You don't seem like the type to hide like that. Why would you want to move away from the target of your criticisms? If MS is your target, you should fire as close to them as possible. There is no better place to put your soapbox than right here where it has been for months.
If you are planning on lying about MS, then maybe you should move. If not, then you shouldn't have any worries. If you point out something bad someone did, it isn't your fault for saying it, it is their fault for doing it.
Also, the chances that you will gain insite on the facts is much higher here than whatever other corner you would move off to hide in.

Shannon J Hager

# re: Is it still allowed to have criticism on Microsoft here?@ Saturday, December 06, 2003 4:21 PM

I can't believe the FUD and general gross inaccuracies in Tomiczek's comment.

Since when is extending a product and giving the enhancements to customers illegal? When it's your product that the enhancement is replacing, right.

Extending functionality for a given product and giving it to customers *when they own a valid license for the same product* is not considered fair play? Let's drag out the "it's not fair!" argument, again only because it's our product that is losing market share. That's a weak argument that has been repeatedly thrown out in court, although if you asked an attorney to take your case he would tell you it was a great argument and then ask to be paid in advance (not on contingency of you winning).

Competitive advantages and disadvantages are the results of competing well in the marketplace. Don't cry just because Microsoft decided to move into what you claim is your product space. MS added CD-burning support to Windows XP, that's more of a new piece of software than an extension of the operating system, and it's totally legit and you don't even mind do you?

Darrell

# re: Is it still allowed to have criticism on Microsoft here?@ Saturday, December 06, 2003 4:32 PM

Darrell, it's no FUD, he's right.

Objectspaces is part of the problem. It's also the free tool MS gives to developers to create the mappings. This way, a lot of potential O/R mapper customers do not have to buy such a tool. This will make a lot of O/R mapper vendors go out of business.

When they do that, and they will because the market all those O/R mapper vendors are targeting is dramatically decreasing, MS has what it wants: people use Objectspaces, there are no real competing products, and they can sell MBF, which is the true cash cow for MS in the coming years.

If you want to know, Darrell, we're currently talking to lawyers because of this, simply because what MS will do with Objectspaces is illegal in Europe, plain and simple.

It would be a TOTAL different ballgame if MS would SELL a competing product, because then they would play fair. Now they will not, they will give away a tool that is on every developers harddisk when they install .NET sdk or visual studio.net. How are O/R vendors able to compete with that?

Frans Bouma

# re: Is it still allowed to have criticism on Microsoft here?@ Saturday, December 06, 2003 5:00 PM

http://weblogs.asp.net/tmarman/posts/41748.aspx

Tim Marman

# re: Is it still allowed to have criticism on Microsoft here?@ Saturday, December 06, 2003 5:06 PM

I see Frans' point here about the tool being part of VS. I understand that things like this do put developers out of work.

But isn't this the natural progression of anything? Once a concept gains popularity people starting asking companies to include it in their products.

Didn't Sheridan give us the first set of 3D widgets, then they became standard in VB. How about all of the tools Borland puts in their enterprise versions?

What about opensource? Look what they and Sun are doing with the Office products.

What I don't want is any government telling a vendor what they can give away for free with their products.

Now product developers can try to innovate all they want but like a previous poster said, if the MS version does most of what we need, will we be willing to shell out money for the extras?

That is the paradox.

Paul Speranza

# re: Is it still allowed to have criticism on Microsoft here?@ Sunday, December 07, 2003 3:36 AM

::That is the paradox.

It is not a paradox.

Destroying product markets is simply one thing: illegal. There are laws about it.

Open source is fine - when noone involved gets paid. But when a company puts up money to develop and then gives it away for free, there are laws for handling this.

Thomas Tomiczek

# re: Is it still allowed to have criticism on Microsoft here?@ Sunday, December 07, 2003 4:40 AM

> But isn't this the natural progression of anything? Once a concept gains popularity people starting asking companies to include it in their products.

Big chance this is MS's main line of defense in court. Personally I don't think the OR-mapper tool suppliers have a case here... MS is just filling up the gaps in a product (which isn't actually a product) they gave away for free from the start. Why would they change their business model, just because the world surrounding them is changing? That makes no sense at all. It's their technology, tool/product suppliers just hop along on the success trip exposing themselves to these vulnerabilities.

Paul Gielens

# re: Is it still allowed to have criticism on Microsoft here?@ Sunday, December 07, 2003 6:28 AM

That line of defense hasn't brought them anything in the Netscape case and will not bring them anything in the Mediaplayer case in Europe.

The problem is not that MS includes a given technology in a framework. The problem is that MS includes a TOOL into the framework and lacks to produce a foundation for these tools in the framework. MS should have build an EJB equivalent in .NET so each and every O/R mapper vendor could have build his tool on that foundation. Now that foundation isn't there, worse, a competing tool is delivered, and even worse: it's free.

Now, the free pricetag, the extremely large marketing power of MS (it's hyping the stuff already, 1 year before release), the availability of the tool on every harddisk of each .net developer... a situation you can't compete with.

Paul G.: you remember the KNP lawsuit with the free internet for schools and why they lost? They lost because they delivered something for free that costs them money. MS puts a lot of money in Objectspaces and the free tools. To win over developers for Objectspaces so they know it thouroughly and will look further towards MBF. A simple scam, yet very harmful for the .NET community, because MS has now shown they will change .NET to make it sell their own products, not just to bring a good foundation for developers.

Frans Bouma

# re: Is it still allowed to have criticism on Microsoft here?@ Sunday, December 07, 2003 7:26 AM

Frans,

Please stay. Sometimes your posts infuriate me. And therein lies their value. That which infuriates me makes me think, and your presence makes the feed more balanced and therefore more useful, IMO.

If the proprietor starts to censor you, by all means move, OTOH, please don't effectively censor yourself by removing yourself from a feed where people who aren't looking for you will find your thought-provoking posts, to a new location where only those already looking for you will find you.

Mike Blumenthal

# re: Is it still allowed to have criticism on Microsoft here?@ Sunday, December 07, 2003 9:41 AM

I see your point Frans, but one thing isn't clear to me.
You state that they haven't created a foundation for these tools in the framework, but isn't that the System.Data.ObjectSpaces assembly?

Greetz,
-- Rob.

Rob Tillie

# re: Is it still allowed to have criticism on Microsoft here?@ Sunday, December 07, 2003 9:48 AM

Rob: no, EJB is something complete different. EJB is a framework which can be used as a base for O/R mappers, and thus for objectspaces, a generic framework, not something just focussing on O/R mapping and inside that just focussing on Oracle. If they had done that, OTHER people could have added for example oracle support to that framework. Now this is not possible.

Frans Bouma

# re: Is it still allowed to have criticism on Microsoft here?@ Sunday, December 07, 2003 12:04 PM

Frans: I didn't know it was only focused on Sql Server. Then it's indeed a shame...
To come back on your original point, about leaving this blogscene: if you would have left, this large discussion wouldn't have occured, because the amount of people reading it wouldn't be so high, and I think this is a good place to have such a discussion.
I can imagine how you're feeling by being pushed out of the market, but I would advise you to let it sink in for a couple of weeks...

Greetz and good luck with it,
-- Rob.

Rob Tillie

# re: Is it still allowed to have criticism on Microsoft here?@ Sunday, December 07, 2003 12:25 PM

Am I the only one that reads blogs via an RSS reader?

Once I've subbed, I don't know or care where a blog is hosted, I'm just reading the content.

I think the only reason to move is if the site host censors you or gives you other difficulties, which doesn't seem to be the case.

Robert Brown

# re: Is it still allowed to have criticism on Microsoft here?@ Sunday, December 07, 2003 2:49 PM

http://weblogs.asp.net/tmeston/posts/41868.aspx

Tosh Meston

# re: Is it still allowed to have criticism on Microsoft here?@ Sunday, December 07, 2003 2:49 PM

Frans,

Remember what happened to Don Box. If you can't beat them, then join them.
Don said, he had to think about his pension. ;)

But I'm afraid that all big companies will keep on filling the gaps all the time. Yukon is another gap being filled, and I'm sure you can name some other already filled gaps.

Kris

# re: Summary of reactions on my blog yesterday@ Sunday, December 07, 2003 3:14 PM

Frans,

I'm glad to see that you are going to give this blog a chance for a while. Alot of us will be paying attention to your posts, so fire away. We'll soon see if its ok to tell the emperor he has no clothes.

Regards,
Paul Speranza

Paul Speranza

# re: Is it still allowed to have criticism on Microsoft here?@ Sunday, December 07, 2003 3:50 PM

Frans,

I don't think that ObjectSpaces is going to knock anyone out of any market. Crystal Reports, at least a 'lite' version, is bundled with Visual Studio and yet there is still a market for Reporting tools. Why? Crystal Reports doesn't quite cut the mustard in some ways. Same with the DataGrid. There is still a market for controls like the DataGrid simply because the DataGrid is kind of like the banjo playing boy on the porch in deliverance. It's just not quite right.

Given what I've seen of ObjectSpaces so far, as well as the Data Factory objects in .NET 2.0. I 'm 90% sure that there will still be a market for non-MS O/R mapping tools and DALs after .NET 2.0 comes out.

Scott

# re: Serious ASP.NET Editor flaw lives on in VS.NET 2003@ Sunday, December 07, 2003 4:32 PM

I've been doing web design in asp for nearly 3 years and I'm now migrating to asp.net. All I can say is that this bug shows how pathetic microsoft's visual studio design team is and its OBVIOUS none of them have ever done any real web dev in their careers. I also dont know how a bug like this could get past the testing level unless it was completely ignored for reasons stated by Mike Moore in his letter. This bug is seriously so annoying it makes me want to stab out my eyeballs with a rusty spoon. It makes the design view completely useless for everyone but newbies who create their high school web project from an oreilly asp.net book.

matt

# re: Summary of reactions on my blog yesterday@ Sunday, December 07, 2003 7:59 PM

Glad you're staying -- let those Microsofties be damned. :)

Paul Wilson

# re: Is it still allowed to have criticism on Microsoft here?@ Sunday, December 07, 2003 8:54 PM

"Objectspaces is illegal in Europe, plain and simple." It's not illegal until proved in court. You may think it is illegal, and that's fine. I may think it is legal, and that is fine as well. We'll all see what the court says.

I am not condoning anti-competitive practices. But I also do not want to see statements such as "Objectspaces is illegal" stated as truth when in fact nobody knows yet.

Darrell

# re: Is it still allowed to have criticism on Microsoft here?@ Monday, December 08, 2003 2:33 AM

How about WebMatrix, also a free tool which MS supplied? Do you think that's unfair as well?

Peter

# re: Is it still allowed to have criticism on Microsoft here?@ Monday, December 08, 2003 2:33 AM

FWIW: stay and write here. your posts make this place better.

Roy Osherove

# re: Is it still allowed to have criticism on Microsoft here?@ Monday, December 08, 2003 4:34 AM


Andrew says "How I can understand it's official microsoft politic for now(Longhorn was released solely
for developer feedback for example)"

Wrong. They make you feel you are part of the making of the product, and that's part of the marketing initiative. That's so obviously a way to monetize communities and make each of those members act as evangelists that I can hardly think you don't get it, do you?

Stephane Rodriguez

# re: Summary of reactions on my blog yesterday@ Monday, December 08, 2003 8:38 AM

Keep on blogging and expressing your mind freely, that's what the BLOG is. :)

SpiderMan

# re: Is it still allowed to have criticism on Microsoft here?@ Monday, December 08, 2003 9:52 AM


Regarding contributions to a MS-centric weblog, I wonder whether it makes sense at all anyway.

If you provide good remarks, feature wishes with a very customer-centric eye and anything else that helps them build and sell better products, then you are basically doing the job of an employee without getting paid.

In the real world, no one works for free. Since work must be paid, and it isn't what's currently being done through weblogs.asp.net, I don't see any point in contributing at all, anyway.

Alternatively, someone not from MS may wish to contribute a MS blog site to tease or impress. I think it's a valid scenario for a lot of people out there who would do that as a matter of getting a job. That being said, I don't think that's the best way to succeed. Quite the contrary, people spending their time on weblogs are people not designing products. Someone would impress them much more with well designed products.

My 0.5 cent



Stephane Rodriguez

# re: Is it still allowed to have criticism on Microsoft here?@ Monday, December 08, 2003 2:59 PM

Hi Stephane,

I see your point, but blogs aren't always about product feedback ;). I like to talk about software development in general, so I hope someone will learn something from my texts. I agree that giving excessive feedback about all kinds of products to MS is indeed non-payed testing. But people are greedy, so a free longhorn cd is seen as a gift, I don't think that will ever change ;)

Frans Bouma

# re: Is it still allowed to have criticism on Microsoft here?@ Tuesday, December 09, 2003 5:57 AM

Good. Leave. Goodbye!

Eric Hill

# re: Children...@ Tuesday, December 09, 2003 2:55 PM

Frans, you shouldn't censor yourself! You have a right to your opinion way better than many of the pro-MS / pro-Open Source sheep you see around the place. If you have an opinion and are prepared to defend it, more power to you!

Scott Galloway

# re: Children...@ Tuesday, December 09, 2003 3:02 PM

Yeah well, deleting some flame / troll every half hour or getting mail from people who ask me why I flamed them on their blog while I never ever read that blog in the first place gets annoying after a while.

It definitely beated the fun out of blogging for me for today and maybe also for a lot of days to come.

Frans Bouma

# re: Children...@ Tuesday, December 09, 2003 3:05 PM

Sorry about us children. :)

Frans Bouma

# re: Children...@ Tuesday, December 09, 2003 3:07 PM

Just for the record - that SUCKS! I work for Microsoft and I think you raised a valid concern on your part. I personally think you are incorrect in your assessment of the situation but your opinion is your opinion.

It is sad that people hanging out on thses sites can't participate with some respect for those who are willing to share their ideas, knowledge, and hard work with the world.

Alex Lowe

# re: Children...@ Tuesday, December 09, 2003 3:20 PM

I agree with Alex. Feel free to post away. The children are at issue, not your posts (again, not that I agree with you :)

This is why we will likely have to go to a registration format sooner than later for comments. :(

-Scott

Scott Watermasysk

# re: Children...@ Tuesday, December 09, 2003 3:21 PM

I think Frans that removing your posts works for the people who think this blog has no space for Microsoft critics.

I will maintainmy opinion if I was you, but hey I am not you !

Paschal

# re: Children...@ Tuesday, December 09, 2003 3:25 PM

Franz its a sad fact that a certain % of any group of people are a bunch of fools.

We shouldn't let them ruin our fun though, but what they are doing to you does suck I know.

I definately think that this community is richer for diverse opinions as it often gives us another dimension on what we do. Like some of the info posted about mono, or your own comments about Oracle a while back.

Please try to relax and ingnore the idiots, blog on dude :D

OmegaSupreme

# re: Children...@ Tuesday, December 09, 2003 3:29 PM

Scott, I think so too you need some kind of registration, or at least IP number logging or something.

You can't prevent everything but now it's not fun expressing some opinion...

Frans Bouma

# re: Children...@ Tuesday, December 09, 2003 3:38 PM

I find it somewhat troubling that I can sign with any name.

Its one thing to be anonymouse, but here I can pretend to be anyone.


-AndrewSeven

Bill Gates

# re: Children...@ Tuesday, December 09, 2003 3:53 PM

I'm just glad my aggregator caught your post so I could read what your opinions are.

I can't speak for anyone else, but yours is one of the feeds that I have subscribed in my aggregator for exactly this reason - you have always spoken your mind.

Anyways, post on, Frans!

Chris Frazier

# re: Children...@ Tuesday, December 09, 2003 4:09 PM

Don't take posts down because of a little heated debate. As I said before, everybody is entitled to their opinion and opinions should be treated with respect, not with "flame wars" and "identity theft". There's no excuse for what "the children" did, but "blog comments" still boil down to "trust".

Yves Reynhout

# re: Children...@ Tuesday, December 09, 2003 4:12 PM

Scott...hey what about Passport (umm...semi-joking :-)), seriously, some form of membership with the option to lock out comments to registered individuals (anonymous as the name otherwise) would be very useful.
Us 'independent' bloggers will probably be harder hit by this than the group bloggers (since you can have a single sign-in across all blogs) - but totally necessary.

Scott Galloway

# re: Children...@ Tuesday, December 09, 2003 4:17 PM

Yves: trust me, I can take a tough debate and the one today in the thread below the posting wasn't a tough debate per se. :) It's the crap that's posted in other threads in other blogs that's annoying. When I get mail from people asking why I replied rudely to their blog while I haven't read that blog in my entire life, it's getting out of hand.

If people don't agree with me, that's fine, you didn't agree with me today, perfectly ok. That's not the reason I did take the thread down, if you doubt about that, please check the reactions on my Oracle posts or Stored procedure posts :)

Frans Bouma

# re: Is it still allowed to have criticism on Microsoft here?@ Tuesday, December 09, 2003 4:36 PM

I don't know if someone mentioned this or not, but Microsoft has had package and deployment solutions built into their products for sometime. There still seems to be a market for things like Wise and InstallShield. Visual Studio has setup projects that directly compete with those directly. Why should an O/R mapper product be any different?

I don't think Microsoft is violating any laws, and or violating any code of ethics. They are exposing technology to people who might not have been aware of it to begin with. You state that it is harmful to the .NET community, how can it be? It is harmful to YOUR community and YOUR pockets. You can speak for your company, but you cannot assume to speak for the .NET community.

I think your effort should be concentrated on developing features and providing services that ObjectSpaces will not. Why waste all of this energy whining about it and do something productive instead?

Jeff Gonzalez

# re: Children...@ Tuesday, December 09, 2003 5:19 PM

I'm really sorry to hear that; I enjoy reading your opinions, even if I don't always agree with them.

Bruce

# re: Children...@ Tuesday, December 09, 2003 8:40 PM

if frans' comments didn't rock the old boat now and then - what would be the point of having him?

you're damn opinionated and you're sometimes wrong - but your clever and that's why, even after a major blogroll clean up that culled off scobleizer *and* dave winer, i choose to keep frans in my list.

leon bambrick

# re: Children...@ Wednesday, December 10, 2003 2:58 AM

Never ever change your "voice" because of others. If it's how you feel, if it's your truth, then don't change your voice.

Put the post back.

S Bradley

# re: Is it still allowed to have criticism on Microsoft here?@ Wednesday, December 10, 2003 3:26 AM

Perhaps we could do without whining babies blogging here?
Leave if you don't like it.
Fine by me.

Jason

# re: Children...@ Wednesday, December 10, 2003 8:47 AM

It's not often that I see anyone getting all riled up about something to the point where they start screwing with someone. Congrats on getting some people that excited, you can consider yourself a writer now that some people hate you. :)

Josh Baltzell

# re: Stored procedures are bad, m'kay?@ Thursday, December 11, 2003 1:46 AM

It's ironic that this flame on SP has been done using a blog engine that is powered by SP.

anonymous

# re: Here's a (big, bad) difference between VB.NET and C#@ Thursday, December 11, 2003 11:01 AM

C# lets you define a new GetObjectData method, but you still can't call the original method. So you still need to recode the base class implementation. e.g.:

public class MyTable : DataTable, ISerializable
{
void ISerializable.GetObjectData(SerializationInfo info, StreamingContext context)
{
((ISerializable)this).GetObjectData(info, context); // calls this method, not the base class
((ISerializable)base).GetObjectData(info, context); // compiler error
base.GetObjectData(info, context); // compiler error
}
}

Carlos

# re: Serious ASP.NET Editor flaw lives on in VS.NET 2003@ Thursday, December 11, 2003 2:48 PM

I am using Visual Studio 2003 and it looks like this problem is fixed. In old Visual Studio it used to strip "Style" in <td> tag, but it's no longer doing it.

Can someone verify this?

Thanks.

Jim

Jim Han

# re: Stored procedures are bad, m'kay?@ Thursday, December 11, 2003 6:37 PM

Frans,

"way before Eric Smith thought it was a good idea" Wow! You're turning into a regular thona.

What I do is run a script that drops all my standard CRUD procs and then re-generate them all when the schema changes. The same thing for my DAL classes. It's called active generation. I think you know a thing or two about this so I'm not sure why you would be slamming me or my tool over it. While CodeSmith does not have the full blown template set that LLBLGen Pro does, the two products are basically the same thing (except CodeSmith is free). Someone could just as easily generate their DAL using an XML O/R mapping file and use dynamic SQL or whatever they want. That's the beauty of a template based code generator. It doesn't dictate architecture to the end user. I don't know about you guys but I will never use a code generation tool that forces me to do things a certain way.

Eric J. Smith

# re: Roundtrips and the real bottlenecks@ Sunday, December 14, 2003 8:18 AM


Hi,

Your blog contains good info. Keep it up.

John

# Stored procedures vs. Ad-hoc queries@ Thursday, December 18, 2003 1:25 AM

TrackBack

# re: The SP Benchmark code@ Friday, December 19, 2003 7:39 AM

Would you happen to have the VB version of the
"The SP Benchmark code". I am new to VB.NET and I am trying to take your advice and go with the Parmeterized Dyanamic Query rather than Stored Procedures.
Regards,
Majid Haeri
majid_97@yahoo.com

Majid Haeri

# re: VB.NET developers, continued@ Friday, December 19, 2003 1:20 PM

Don't worry, C# programmers aren't considered highly skilled developers either.

asdf

# re: Why Edit & Continue is a bad thing@ Sunday, December 21, 2003 1:43 PM

Edit and continue save so much time when fixing trivial errors that it is a shame it hasn't been implemented yet - whenever I read the ENC comments form C# people, it's just typical of their "my way of the highway" mentality that keeps progress in the 19th century. Get over it C# people, there are some nice features in VB that put the IDE ahead of the C world you are accustomed to and it's time you opened your mind and stop acting like bunch of geeks. Just because you are C people doesn't really make you better programmers - it just proves you like to suffer more than the rest of us.

George

george

# re: ORM and O/R mapping@ Sunday, December 21, 2003 5:08 PM

I'd tend to disagree. I think that "ORM" is an overloaded acronym which - based on the context - either means "Object Role Modelling" or "Object Relational Mapping". I've seen it used in both meanings before ...

Ingo Rammer

# re: ORM and O/R mapping@ Sunday, December 21, 2003 7:50 PM

My pleasure ;-) I believe strongly in O/R Mappers as I'm sure you do too. Its nice to see so many people talking about them!

Steve

# re: ORM and O/R mapping@ Sunday, December 21, 2003 11:59 PM

tomato
tomato

scott

# re: ORM and O/R mapping@ Monday, December 22, 2003 1:35 AM

::I'd tend to disagree.

Without a reason, as I must say.

::I think that "ORM" is an overloaded acronym
::which - based on the context - either
::means "Object Role Modelling" or "Object
::Relational Mapping".

Why do I think "bullshit" hen I read this?

I will tell you.

This hyperlink:

http://www.acronymfinder.com/af-query.asp?String=exact&Acronym=ORM

points to Acronymfinder, which is about THE ressource for overloaded abbreviations :-) I mean - look up CMS, and you sill understand.

it lists a LOT of overloads for ORM, but NONE is "Object / Relational Mapper".

So, with all respect - what you THINK is totally irrelevant. It is no an acronym, whether you try to make it one or not.

If people would keep to use words in the right meaning, they would be understood better. Honor the language you speak, and dont pollute it with your thinking.

Thomas Tomiczek

# re: ORM and O/R mapping@ Monday, December 22, 2003 2:20 AM

Thomas, charming as always!
I'm lovin' it! ;)

Dennis v/d Stelt

# re: ORM and O/R mapping@ Monday, December 22, 2003 3:16 AM

Sorry, Thomas. I refuse to discuss at this level of language and attitude. If you are interested in a discussion of how language evolves, how acronyms are created, and how we should treat them, I'd be happy to respond if you re-post in sane language.

In the meantime:

http://www.google.com/search?q=orm%20%22object%20relational%20mapping%22 (1050 hits)

vs.

http://www.google.com/search?q=orm%20%22object%20role%20modelling%22 (363 hits)

-Ingo

Ingo Rammer

# re: ORM and O/R mapping@ Monday, December 22, 2003 3:23 AM

Ingo: heh :) ok, that means OR not a lot of people use ORM (the modelling) (wouldn't be surpised) OR a lot of people use the wrong acronym ;)

The point of my blogentry was that ORM (the modelling, geezz... because I have to say 'the modelling' proves my point ;)) is a term for Object Role Modelling, which doesn't have another name afaik. This means that to avoid confusion among developers, it's better to stick with the original terms.

Frans Bouma

# re: ORM and O/R mapping@ Monday, December 22, 2003 4:55 AM

Using google statistics is arguable.

http://www.google.com/search?q=%22object%20relational%20mapping%22 (17400 hits),
so one in about 16 pages with "object relational mapping" has the acronym ORM.

http://www.google.com/search?q=%22object%20role%20modelling%22 (636 hits), so more than half of the pages with "object role modelling" contains the acronym ORM.

Conclusion: ORM more used for object role modelling than for object relational mapping.

Vincent Snijders

# re: ORM and O/R mapping@ Monday, December 22, 2003 8:51 AM

Vincent & Frans: Agreed.

I just wanted to support my point that I've seen it used with both meanings (a point with which Thomas didn't agree too much). The google.com query shows this as well and - just as I did - without any notion of whether this is right or wrong. It's just a snapshot of what people actually said.

-Ingo

Ingo Rammer

# re: Stored procedures are bad, m'kay?@ Monday, December 22, 2003 1:29 PM

This started out being interesting, but once again Thona has appeared and ruined it. Seriously, the guy is the most violent drunk I've come across in this arena. I think I'll head elsewhere ...

Mac

# re: Tool: The complete idiot's add-in for signing your assemblies with a strong name@ Tuesday, December 23, 2003 3:21 AM

TrackBack

# Tool: The complete idiot's add-in for signing your assemblies with a strong name@ Tuesday, December 23, 2003 3:30 AM

TrackBack

# re: Bitter message@ Tuesday, December 23, 2003 3:53 AM

TrackBack

# re: Singing your assembly, newbie guide@ Tuesday, December 23, 2003 9:09 AM

This is groovy. I've been wanting to look this up for a while but I've been too lazy. "Signing your component for dummies."

Scott

# re: Singing your assembly, newbie guide@ Tuesday, December 23, 2003 9:12 AM

Excellent. I was thinking the same thing the other day when I read our infamous know-it-all saying how hard it was to do. :)

Paul Wilson

# re: Singing your assembly, newbie guide@ Tuesday, December 23, 2003 9:12 AM

Heh, I wouldn't expect anything else than lazyness from a person from lazycoder.com :D ;)

Frans Bouma

# re: Singing your assembly, newbie guide@ Tuesday, December 23, 2003 9:13 AM

You no longer have to register to download my tool. Thanks for the plug.

Robert McLaws

# re: Singing your assembly, newbie guide@ Tuesday, December 23, 2003 9:15 AM

Not every bad publicity is 'good', Robert. (and why is my comment removed from the commentslist under your tool? Tssk.. censorship... )

Frans Bouma

# re: Singing your assembly, newbie guide@ Tuesday, December 23, 2003 9:26 AM

Yes. It's easy, but why the heck not use a plugin? Why not make life easier? is that such a bad thing? Sure, I *could* write property getters and setters manually if I *wanted* to, but I use CodeSmart so make it fast and simple. Is that bad as well?

Roy Osherove

# re: Singing your assembly, newbie guide@ Tuesday, December 23, 2003 9:26 AM

LOL, I was thinking about the same when I read the huge announcement.


Nice job, do I have to register in the future to read your blog ;-) ?

Peter de Boer

# re: Singing your assembly, newbie guide@ Tuesday, December 23, 2003 9:28 AM

Thank you Frans!!!

Ugh. I really don't like that ( I do like this).

It had seemed so simple to sign my assembly, just like the steps above but with a key per project.

No thank you Robert.
There I was, left with this sinking feeling, that I had left out something, that this simple task was much larger than what I understood.

AndrewSeven

# re: Singing your assembly, newbie guide@ Tuesday, December 23, 2003 9:31 AM

Peter: just subscribe to the RSS feed in your RSS reader, no registration required ;)

Roy: plugins can be buggy, can mess up your code, can crash the IDE, can corrupt files and more. And that for just 1 line of code. :D

I don't use any plugins anymore, after I wrote some macros to create regions and properties. I know these will work without hassle. But thats choice. If you want to use a plugin for 1 line of code that is always the same in every project you create, go ahead, it's a free world (for some).

Frans Bouma

# re: Singing your assembly, newbie guide@ Tuesday, December 23, 2003 9:35 AM

Using plugin for adding key file name to AssemblyInfo class????
LOL!

btw, first two steps could be replaced by
1. Run Start/Programs/Microsoft Visual Studio .NET (2003)/Visual Stuio .NET Tools/Visual Studio .NET (2003) Command Prompt

Oleg Tkachenko

# re: Singing your assembly, newbie guide@ Tuesday, December 23, 2003 9:38 AM

Ah good one, Oleg :) The less steps, the better :)

Frans Bouma

# re: Singing your assembly, newbie guide@ Tuesday, December 23, 2003 9:39 AM

Just to play devil's advocate here, A macro is the same as a plugin for this discussion. It makes your life simpler. Regardless of the usefulness of Robert's plugin, You can't disregard "simple life mechanisms" so easily, can you? Sure, for one line of code it would seem a bit too much, but that's not usually the case.

Roy Osherove

# re: Singing your assembly, newbie guide@ Tuesday, December 23, 2003 9:46 AM

Roy,

it's not really the fact someone creates a plugin, it's more the fact there's made a *huge* announcement for a solution to a problem while there is no problem. It's really not a big deal to sign an assembly.

What would you say when I created a plugin that for example adds the statement "using system.data" to the top of my page? Basically that's what it does.

Peter de Boer

# re: Singing your assembly, newbie guide@ Tuesday, December 23, 2003 10:34 AM

It is all interesting but Carl Franklin created a tool to generate key file then the only thing you need to do is to make changes to your Assebly Attributes :)

http://www.franklins.net/dotnet/snutil.zip

www.ipattern.com (do you?)

Maxim V. Karpov

# re: Singing your assembly, newbie guide@ Tuesday, December 23, 2003 10:39 AM

Hi Frans,

This might work if you're the only developer on a project. But if your dev team has more than one developer, you *must* keep your secret key secret. This means that the developers shall not have the private key, but only the public key and use "Delay Sign" as described in this MSDN article. The GAC hassome special mode for skipping signature verification that has also to be used by developers during coding and testing. Then after, before burning the CDs, the assemblies have to be resigned by the "security officer", the only person in the company who should have access to the private key. Here's the link to the MSDN article:
http://msdn.microsoft.com/netframework/default.aspx?pull=/library/en-us/dnnetsec/html/strongNames.asp

Hope this Helps!

Christophe Lauer

# re: Singing your assembly, newbie guide@ Tuesday, December 23, 2003 10:45 AM

Maxim: you mean a wrapper around sn -k? :)

Christophe: good point. Although I think if you don't have a security officer it's not that big of a deal, but if you do, then indeed the developer should use delayed signing described in your article.

The fuzz here was more about a big announcement of a plugin to do something very simple :) The philosophy behind signing assemblies, (when to sign, when not to sign), installing in GAC or not, is a big subject, however if you've decided to do so (for example to be sure signed applications can use your assembly), the steps to sign the work are very easy :)

Frans Bouma

# re: Singing your assembly, newbie guide@ Tuesday, December 23, 2003 11:20 AM

I dont even see why this is a big deal, the process takes all of 30 seconds and is extremely simply...?

Joe Coder

# re: Singing your assembly, newbie guide@ Tuesday, December 23, 2003 12:43 PM

I agree with Frans and Joe Coder. For gosh sakes this is so frigging basic and it takes all of 30 seconds. This is chapter 1 of Richter for gosh sakes. How can anyone do aything in .NET if they don't know the most basic things like this? You don't need an add-in to do this as it is uncommenting two lines in AssemblyInfo.

Sam Gentile

# re: Here's a (big, bad) difference between VB.NET and C#@ Tuesday, December 23, 2003 1:15 PM

I don't know if this will work for DataTable, but take a look at the ISerialization details of extending ApplicationException in http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dncscol/html/csharp08162001.asp.

Chuck Eaker

# re: Singing your assembly, newbie guide@ Tuesday, December 23, 2003 4:28 PM

You guys are all primadonnas. The first part of my post said I had 30 e-mails in three days saying that people didn't know what it was. OBVIOUSLY there was a need for it SOMEWHERE, or I wouldn't have done it. Buy you guys are all so friggin brilliant... that's why it wasn't written for you, or the 2000-some-odd people that understand it. It was written for the 6 MILLION other .NET developers who are just getting started in .NET, and don't get it. Not everyone is as smart as you are.

And BTW, It's not Chapter 1 of Richter. The VB.NET Security Book does not cover it until Chapter 10. And the fact that you think the problem is as simple as one line of code, means you don't REALLY understand what's going on under the covers.

And in regards to the add-in not dealing with delay-signing... most shops can't even understand regular signing... to them, delay signing is next to impossible. You have to start somewhere.

Developers look up to you guys for advice, for leadership. Is this being a leader? Leaders don't tear people down. When you post blatantly negative attacks on someone, it makes other people not want to be a part of this community.

Speaking of starting somewhere, I think you all forgot where you started. There was a time once where you didn't know what strong-name signing was either (it wasn't that long ago, since it came around with the Framework). I doubt anyone derided you for being stupid and not knowing how you did it. Sam, you just single-handedly insulted 6 Million VB.NET developers who don't get the same signing comments that are in the AswsemblyInfo.vb file. Are you calling them stupid?

Robert McLaws

# re: Singing your assembly, newbie guide@ Tuesday, December 23, 2003 4:32 PM

Almost forgot. Singing your assembly, huh? I like singing songs, personally, but i can see how singing an assembly can be fun too.

Robert McLaws

# re: Singing your assembly, newbie guide@ Tuesday, December 23, 2003 4:42 PM

It is on Page 90 of Richter. I, unlike a lot of those programmers, started 3 years afo with just the framwork and an editor and figured it out. I also started with Richter. If people would just read the damn book and understand the basics before playing with things like ASP.NET they wouldn't have these issues over and over. I do understand signing fully, I don't know what you are doing with your controls that is different from hundreds of others that don't have the issues you have. And don't call me a prima donna. If its anyone who hasn't earned their place but touts their own horn every frigging second, its you. I have stayed out of this for far too long. I dind't post anything when all those people attacked you but you just don't listen to the advice that Frans and people gave you. You constantly come off as the gift to the world and making asine statements like "done more in 21 years than anyone has in 40." Its that kind of thing that pisses people off and does what Jim McCarthy calls "flipping the bozo bit" and having people stop listening to what you have to say. You can rant all you want. It is a matter of a command or uncommenting out 2 commented out lines in the AssemblyInfo. I have been doing this for 3 years and it takes 30 seconds. If you want to blow it up to epic scale like you do with all your "announcements" knock yourself out. I still maintain that its very basic and that anyone that does not know the basics of assemblies (ala Richter Chapters 1-3) will have a near impossible time programming .NET. VB can try to hide everything away from people but in the end you just have to know what you are doing. Fundamentals.
As to your last asertion that I single-handly insulted 6 million programmers, you are sounding more riducolous every time you post. You saying wild things like this just makes you look bad.

Sam Gentile

# re: Signing your assembly, newbie guide@ Tuesday, December 23, 2003 5:00 PM

The first thing I learned as well when I started .Net (and I started with notepad, MSDN, and Richter) was how to sign and delay-sign an assembly. The assembly, and how it works, how to use it, etc. is fundamental to understanding .Net.

I understand the reason you felt you needed to create the tool, but I disagree that it was necessary to create a tool when a simple explanation like Frans' would have sufficed. If the comments are not available in VB.Net (as it is in C#, which Sam and I use daily), then I would have answered those 30 emails you mentioned with a blog post explaining the issues. It helps produce better developers who understand why, rather than run another wizard and still have no idea what's going on.

Working with Sam day-in and day-out, I see that it is ingrained in him that developers understand "why" more than "what". He is not a "prima-donna", as he devotes hours of his time helping this client among many others in the .Net community to understand how .Net works. Sam was not trying to insult the 6 million developers -- instead, he was trying to help them understand why things work the way they do in .Net. Even the VB.Net Security book you mention (by Eric Lippert) goes through many details from the front-end to explain to the VB.Net developer why security is the way it is in .Net. He does all of that without running a single wizard. He mentions nothing about VB.Net because its immaterial to understanding the fundamental principles of .Net.

Robert Hurlbut

# re: Signing your assembly, newbie guide@ Tuesday, December 23, 2003 8:24 PM

Can I just skip to Step 9 and repeat it a few times?

Shannon J Hager

# re: Serious ASP.NET Editor flaw lives on in VS.NET 2003@ Tuesday, December 23, 2003 11:29 PM

Not only is this an annoying bug but I've got one worse. For some reason, the event wiring code that hooks buttons and other control's postback events to the code behind .cs file, dissapears, seemingly randomly, when a .aspx file is saved. Doesn't happen everytime but when the client calls up and says some button doesn't work anymore, it really sucks.

And that explanation for why the bug didn't get fixed is such BS. How many billions in cash does MS have in the bank? Hire consultants if your team is too la.. uh, uh, unable to rewrite the code.

Rip Ryness

# re: Signing your assembly, newbie guide@ Wednesday, December 24, 2003 2:26 AM

@Robert: come on man, pointing out a typo from someone who's native language is not English??

It just shows you can't beat him on arguments.

I'd like to see you post in Dutch, and I promise I won't point out any typo if I can just understand what it's about.


[offtopic]
LOL @ Shannon :)

Peter de Boer

# re: Signing your assembly, newbie guide@ Wednesday, December 24, 2003 4:19 AM

Shannon: hehehe :) You could of course do that, but my experiences are that, if you take step 9 too many times, it's adviced not to take any of the previous steps after that ;)

Frans Bouma

# re: Signing your assembly, newbie guide@ Wednesday, December 24, 2003 4:19 AM

WARNING to mr. McLaws: do not ever post a reply to my blogs again. EVER.

Frans Bouma

# re: Signing your assembly, newbie guide@ Wednesday, December 24, 2003 6:45 AM

Peter:

"What would you say when I created a plugin that for example adds the statement "using system.data" to the top of my page? Basically that's what it does. "


If I remember correctly there a a very cool plugin somewhere that allows you to automatically add missing import (using) statements to your file when you forget to add the. Something like, you time Thread, mark the work and make the shortcut keys, and the using System.Threading line appears automagically. simple, time saving, and yes, does not take a genius to figure out. Still, iot's a wonderfull time saving plugin. I would not call such as plugin useless.

Roy Osherove

# re: Signing your assembly, newbie guide@ Wednesday, December 24, 2003 8:28 AM

Ugh, my typos are only enhanced on a norwegian keyboard, as my last comment would show..
I meant to say that you highlight the word "thread" and activate the plugin, to automatically have a "using System.Threading" line added to your code.
Hope that's more understandable.

Roy Osherove

# re: Signing your assembly, newbie guide@ Wednesday, December 24, 2003 8:33 AM

I found my friend Keith Brown's article on strong names to be the *best* thing I have read in 3 years on the subject. Check it out http://msdn.microsoft.com/netframework/?pull=/library/en-us/dnnetsec/html/strongNames.asp

I blogged it http://samgentile.com/blog/archive/2003/12/12/10883.aspx

HTH

Sam Gentile

# Dewayne Mikkelson and his Radio WebDog, Shadow@ Wednesday, December 24, 2003 8:40 AM

Dewayne Mikkelson and his Radio WebDog, Shadow

TrackBack

# re: Oracle 9i is already generations ahead and shows a .NET flaw.@ Wednesday, December 24, 2003 12:13 PM

Blah blah blah
SQL Server is better... No, Oracle is better, No...
Get over it. There're pros and cons for both products. But since you started arguing: I'll take easy integration over a couple of features anytime. While you're trying to figure out the docs and tools, I can do my work and move on, and don't have to shell out $90k for Oracle DBA.
To wayne: If you think this is the worst bug in SQL Server(with such an easy workaround) then you should dump Oracle and start using SQL Server right away.

Sergey

# re: Happy holidays!@ Wednesday, December 24, 2003 1:17 PM

Happy Holidays Frans :D

look forward to checking out LLBLGen Pro in the new year, I've had no time this year :(

Then again looking at my todo list it may be a few months yet ...

OmegaSupreme

# re: Happy holidays!@ Wednesday, December 24, 2003 1:23 PM

Happy Holidays Frans!

Sam Gentile

# re: Happy holidays!@ Wednesday, December 24, 2003 2:17 PM

Same to you. Happy Holidays!

Shane Bauer

# H4ppy H0L1d4ys!@ Thursday, December 25, 2003 1:59 PM

I'm glad to see I'm not the only one putting my day(s) off to good use.

My holiday so far has been spent playing with some toys/tools that I haven't previously had time to really sit down and give the effort needed. I have been able to finally check out the Frans' offerings: LLBLGen (the free, open source version and a demo of the Pro version). The Pro version is only a demo, so I couldn't really test it except for on the Northwind database, but it is

TrackBack

# re: Signing your assembly, newbie guide@ Thursday, December 25, 2003 3:12 PM

Damn, you nitwits!
Arguing about whether or not to write an add-in...
BE HAPPY that you're all .NET coders!
I still have to experience the terror of Java, ever tried to sign a JAR file?!? you need an entire tool for that! a plugin isn't even sufficient :P
We're gonna switch to .NET soon :D

But plz guys, don't argue about something so ignorant... both solutions are good :) surely a user can decide whether or not to use an add-in...

Greetz,
-- Rob.

En ja, hij had in inderdaad zijn bek moeten houden over spellingsfouten ;)

Rob Tillie

# Weblogs.asp.net / .Text screensaver!@ Friday, December 26, 2003 6:44 AM

TrackBack

# Weblogs.asp.net / .Text screensaver!@ Friday, December 26, 2003 6:51 AM

TrackBack

# Lovely@ Friday, December 26, 2003 2:11 PM

It looks great :p

Just like the dozer-one :)
Gonna try and learn a bit from your source, I'm amazed with what you can do with OpenGL

David Cumps

# re: Weblogs.asp.net / .Text screensaver!@ Friday, December 26, 2003 2:41 PM

thanks, David! :)

Frans Bouma

# re: Weblogs.asp.net / .Text screensaver!@ Friday, December 26, 2003 11:26 PM

Cool! Going to grab it tonight and take a look.

I fooled around with some OpenGL (mostly) and DirectX back in college for my graphics course. Been awhile, but I'd love to play around more with it. Maybe this will be the code that sparks the interest :)

Tim Marman

# re: Weblogs.asp.net / .Text screensaver!@ Saturday, December 27, 2003 12:08 PM

Superb :D

looks great on my geforcefx 5600

Great job.

OmegaSupreme

# re: Weblogs.asp.net / .Text screensaver!@ Monday, December 29, 2003 2:36 PM

Looks very nice buddy!! I've got a GeForce 3 card on WinXP.

Respect and keep up the good work :)

Johan Danforth

# re: Weblogs.asp.net / .Text screensaver!@ Monday, December 29, 2003 3:06 PM

Thanks all! :)

I noticed a small bug with the timings, if hte framerate drops because the time it takes to calculate and draw a frame is > the time it takes of a frame using the current framerate of the screen (75hz for example), the animation slows, because the angle changes of the x-y and z sines are not changed because of the less amount of frames drawn per second... ah well.. ;) It was fun developing this code (it even pulls 75fps on my GF4 / amd2600+ with 250 flares/bands on 1600x1200 :))

Frans Bouma

# re: Weblogs.asp.net / .Text screensaver!@ Monday, December 29, 2003 3:47 PM

I used to follow the demo scene back when I had an Amiga then a PC. I liked The Future Crew stuff. I was impressed by the effects and the fact many were coded in assembly. Pretty impressive because you have to be very good in programming plus calculus/math.

Abdu

# re: Weblogs.asp.net / .Text screensaver!@ Monday, December 29, 2003 4:11 PM

I typed a long reply, about the demoscene, but .Text's bug with the viewstate corruption vanished it. :(

Frans Bouma

# New and Notable 32@ Tuesday, December 30, 2003 4:48 AM

TrackBack

# re: Stored procedures are bad, m'kay?@ Tuesday, December 30, 2003 11:47 AM

Bit of a lack of thrill here. Rant, rave, and yell, but don't actually present any facts or figures. So we are all supposed to start creating a series of roles on the database and couple that with a series of views and tack into that a bullet proof hack proof dynamic sql method just to get past SPs? Not to actually get faster than SPs, or safer than SPs, or even less resource intensive than SPs..just to please an SP hater? Yeah, right, and I just saw a flock of pigs flting north.

Mr Ed

# re: Stored procedures are bad, m'kay?@ Tuesday, December 30, 2003 11:57 AM

Oh yes..has anyone here heard of 'pre-compilation' of Stored Procedures?

Also..Frans..if you quote from something to use it as a support for your arguement then you cannot then turn around and blame that source if it turns out to be wrong with no backlash on yourself. Its called 'checking your sources'. You quote it, you wear it.

And that guy how started up about 'Access' and its obvious lack of SPs....please, give us all a break. If you want to use Access then feel free...but don't pretend speed, scaleability or any thing else are considerations. Like driving a Ford Anglia into a SuperCar rally.

Mr Ed

# re: Stored procedures are bad, m'kay?@ Tuesday, December 30, 2003 12:00 PM

What's the problem, Ed? what did I quote but misused?

Also, tell me, how to precompile stored procs in SqlServer so that it would add something to the execution speed. You can't do that, claiming you can is bollocks.

If you want to keep using SP's, go ahead. However if you want to defend yout decision WHY you want to keep doing that, use facts, instead of stories about flying pigs :)

Frans Bouma

# re: Serious ASP.NET Editor flaw lives on in VS.NET 2003@ Tuesday, December 30, 2003 8:27 PM

I have stopped all major development with asp.net until this bug is fixed.

Danny Jones

# re: Oracle 9i is already generations ahead and shows a .NET flaw.@ Wednesday, December 31, 2003 1:03 PM

public string opinionator(string DiscussionTopic)
{

if(DiscussionTopic.IndexOf("Microsoft") > 0)
{
return "bad";
}
else
{
return "good";
}

}

alex

# re: Oracle 9i is already generations ahead and shows a .NET flaw.@ Wednesday, December 31, 2003 1:04 PM

forgot my smiley... ;)

alex

# re: Happy 2004!@ Thursday, January 01, 2004 2:27 PM

Hi Frans,

Best wishes to you too from Voorschoten!

Fizgig

# Introducing Multiple Inheritance@ Sunday, January 04, 2004 11:02 AM

TrackBack

# re: A plea for full multiple inheritance support in .NET@ Sunday, January 04, 2004 2:34 PM

They are some more issues with MI. Imagine an object that inherits from MarshalByRef and MarshalByValue or a RealProxy. How this object will be marshalled ?
Also class attributes carry some ambiguities. Testing for the existance of an attribute in some cases all base classes must have it (ie Serializable), for some any class may have it and for some others only one class (AllowMultiple=false).

I had posted (a year ago) a suggestion for Ruby-like mixins, that seems that might be implemented in some next C# version (orcas?)

see what Chris Brumme said about MI at :
http://blogs.gotdotnet.com/cbrumme/commentview.aspx/ec40acce-4ae4-44b8-93ce-27dd896b0d1d

Panos Theofanopoulos

# re: A plea for full multiple inheritance support in .NET@ Sunday, January 04, 2004 3:07 PM

Panos, of course there are issues with silly inheritance trees, but that's the problem of the developer doing the silly inheritance. It's not the problem of the platform developer what the user of the platform will do with it, like it's also not hte problem of the platform user how complex it is to write such a platform.

Frans Bouma

# re: A plea for full multiple inheritance support in .NET@ Sunday, January 04, 2004 3:21 PM

I find I want multiple inheritance, not because of things I've done, but because of things Microsoft has done.

If, for example, the core control architecture were based on IPage (an interface) instead of Page (a class), then I wouldn't need to have some contortions I do.

Here's a simple example:

I want a base class called AbstractHttpHandler, which gives a bunch of core functionality (I'm speaking of code here, not interfaces), to help me implement HTTP handlers. I also want my page class to inherit from this, so I can bring along all this code without any effort, since all the base HTTP handler code really applies to the base page code.

With things as they sit now, I have to derive from AbstractHttpHandler from Page, rather than just implementing IHttpHandler, because of the inheritance tree. An alternative, that's also not very tempting, is to contain AbstractHttpHandler within AbstractPage, and set up a whole bunch of mechanical method forwarding, or expose the handler through a property and create a dichotomy of "helpers in the handler class vs. helpers in the page class". None of that is very clean.

Why? Because someone on the ASP.NET team didn't make IPage. Thanks, Microsoft. :-p

I will say, though, that I will be missing MI a lot more when we get generics. I loved the ATL-style usage of MI (mix-ins), and I could strongly vote for MI on this basis alone.

Brad Wilson

# re: A plea for full multiple inheritance support in .NET@ Sunday, January 04, 2004 8:41 PM

I don't want MI. I want Ruby Mixins, or Traits

http://www.cse.ogi.edu/~black/publications/refactoringsACM.pdf

As far as I can tell.. you will be able to sort of simulate mixins with generics.
Do a search for Generic Mixin in google, and see what turns up.


Sean

# re: My wish-list for the next Visual Studio.NET release@ Monday, January 05, 2004 12:40 AM

for one thing - persistent bookmarks are a necessity - one thing that can be learnt from JBuilder 8 is numbered shortcuts - Ctrl + Shift + <number> to set, Ctrl + <number> to recall... the one area the .NET IDE has a real edge over the JBuilder 8 IDE is in 'outlining' ...

dylan pereira

# re: My wish-list for the next Visual Studio.NET / .NET api release, part II@ Monday, January 05, 2004 12:43 AM

IDE - persistent bookmarks are a necessity - one thing that can be learnt from JBuilder 8 is numbered shortcuts - Ctrl + Shift + <number> to set, Ctrl + <number> to recall... the one area the .NET IDE has a real edge over the JBuilder 8 IDE is in 'outlining' ...

dylan pereira

# re: My wish-list for the next Visual Studio.NET / .NET api release, part II@ Monday, January 05, 2004 12:50 AM

IDE - persistent bookmarks are a necessity - one thing that can be learnt from JBuilder 8 is numbered shortcuts - Ctrl + Shift + <number> to set, Ctrl + <number> to recall... the one area the .NET IDE has a real edge over the JBuilder 8 IDE is in 'outlining' ...

dylan pereira

# A plea for a more concrete example of why MI support would be useful in .NET@ Monday, January 05, 2004 8:48 AM

Almost every time I read or hear a justification for MI, it falls into one of three camps:

(1) The explanation is excessively abstract.
(2) The explanation contains 'toy' examples.
(3) The explanation contains really bad examples, where MI was positively the wrong thing to use.

I'd really like to see (4): an explanation with compelling examples, because I'd really like to understand why some people want this so much. I was disappointed by this article, as it seems to fall into camp (1) - the first paragraph of "When SI doesn't cut it" doesn't present a credible example, it just presents an abstract scenario: a world of As, Bs, and Cs, rather than anything real.

To the extent that it is specific - talking about ServicedComponent - it is specifically somewhat non-credible. Do you *really* build your distributed systems like this? Don't you always build a facade that presents the external remotely accessible face of your application, and which then calls into internal business logic components? To me it seems like if you're in a position where you actually want to derive from ServicedComponent *and* something else, then sooner or later you're going to find that things are easier to maintain if you seperate out those two concerns (presenting a business operation facade, and implementing the guts of operations the facade exposes) into two seperate classes anyway.

(Or, if you're not making these things available at a network or process boundary, do you really use COM+ at such fine granularity? I've just finished work on a system where we tore out such use of COM+ because it killed the system's scalability.)

Deriving from ServicedComponent in a class that forms part of the implementation guts just seems wrong to me. But of course everyone's views are coloured by their experiences, and I was hoping to be able to learn from your work.

So I'd love to read about a concrete situation where the lack of MI in .NET caused you a problem. (Even if it is ServicedComponent-bassed - I'm prepared to believe that you might have a perfectly reasonable example in mind despite my bad experiences with fine-grained COM+, but it's really hard to tell when the names of all the classes have been replaced with letters...)

In 3 years of working with C# I've not yet come across a situation in which MI would have made my life easier. You've evidently had different experiences, and I'd love to learn from them, so it would be great if you could supply a little more detail; from this article I simply ended up with a feeling of "Nope - I still have absolutely no desire to see MI in .NET!"

That said, I did use mix-in MI quite a lot in my ATL days. But mostly to deal with the kind of COM plumbing that has pretty much vanished (hoorah!) in .NET. It's not a technique I miss.

Ian Griffiths

# re: A plea for full multiple inheritance support in .NET@ Monday, January 05, 2004 9:11 AM

Ian, I didn't include a specific example because when you do that, it makes the article's point be based on the specific problem illustrated by the example and it will most of the time make people react like "But if you do it this way [insert method here], your example's problem is gone", which will make the reader think the problem is gone, which is not the case.

But if you want a specific example, I'll give you one. First I'd like to add that you too didn't address the problems with ServicedComponent. You too are very vague about how to solve it by mentioning the usage of proxies, which is most of the time not what you want due to their 'chatty' nature. However, let's cut to the real problem.

In the LLBLGen Pro framework I wrote, I have support for ADO.NET and COM+ transactions. These 2 types are serviced by two different classes: TransactionBase and TransactionBaseComPlus. One derives from system.object, the other from ServicedComponent. I can't do it another way, because that will break the COM+ control flow as I understand it. This means that the shared code of both has to be implemented two times. (both contain the same code for managing which objects participate in the transaction etc.) I can't write it in another class hierarchy.

This limitation brought me to the choice of should I keep on supporting COM+ in a new templateset (with new base classes) I'm writing? That template set uses 'adapters' to persist/fetch entities and related objects. The base class is pretty big however I would need 2 versions of this class as well if I want to support COM+, and that's pretty ugly in my eyes.

That you haven't had the need for MI doesn't mean it's not handy to have it. If you are used to casting, generics are not that required, you can write code just as easily now as you can with generics. If you think about patterns, it's easier to apply patterns with MI than with SI, because you can work with abstract classes a lot which provide plumbing code for you. You give the example yourself: COM and ATL was great because you could mixin the COM+ plumbing using MI. .NET code today also contains a lot of plumbing code. We now have to jump through hoops (and often re-implement an interface we have implemented a dozen times before) to mixin plumbing code into our class which derives from another class.

With the specs of ServicedComponent, MI is REQUIRED to be as flexible as people say you CAN be with .NET. For other situations, MI will bring a lot of conveniance to the table and ease of use, especially for library writers.

I find the example Brad Wilson posted earlier in the thread also illustrative for a situation where it can (and SHOULD) be available. Gui related code is often better of with MI, for the same reason as some other code is better of: mixing of data structure (with little behaviour) and behaviour (and abstract data structures)

Frans Bouma

# re: A plea for full multiple inheritance support in .NET@ Monday, January 05, 2004 10:47 AM

It's nice to see a "non religious" case for MI, for a change :)

However, what the formal case for MI needs, IMHO, is a scientific study (meaning a statistically valid sample) of many applications in other languages/platforms that actaully use MI to solve problems of *all* kinds. The solution could be judged on several factors to classify them i.e.

- Was MI necessary to the solution or could SI have been used at little or no cost?
- What did MI buy the developer/user/project in terms of effort, functionality etc.
- What limitations did MI introduce to the code?
- What amount of complexity did MI introduce to the code?

.. and so on. What I'm getting at is this: how can we expect MS to go to the extensive trouble of implementing MI (and making it as backwards compatible as possible) unless we have some objective measure of what it will do for us AND also have some assurance it won't be abused, causing maintenance programmers and others having to work with APIs a lot of heartache.

I would like this big picture.
Richard

Richard A Lowe

# re: Oracle 9i is already generations ahead and shows a .NET flaw.@ Monday, January 05, 2004 4:59 PM

Frans has it right "Databases are one of the most high-tech software systems we all work with today, although not a lot of people will recognize them as such..." It's true!! They are amazing when you think about how fast they find what you're asking of them.

Most people (esp. developers) think of a database as a repository for data, not realizing all the benefits it can give them. Naturally, they like to fix problems with code. To that end, developers would rather not admit there's a need for a DBA, which is why *some* hate Oracle.

Oracle is complex and overboard for most applications. The MVCC alone makes me run screaming from SQL Server, but that's because I expect accurate results when I run SQL. Most can live without it because they're systems don't see that much action. For these systems, I see no reason to pay for Oracle either.

The bottom line is that if a system doesn't require a full-time person to manage the database systems, then it probably doesn't need those features. Enter SQL Server: good, fast but not made for super high-end systems. It also seems like GUI folks prefer the "self-managing" type of software, which Oracle is truly not though they are beginning to claim it. Command-liners don't mind getting their hands a little dirtier and typically don't gripe so much about Oracle's complexity.

Oh yeah, and the Oracle docs are actually good although they have come a LONG way in a short time.

re

# re: A plea for full multiple inheritance support in .NET@ Wednesday, January 07, 2004 2:32 PM

If every specific example could be countered with an example of why MI is not in fact necessary, wouldn't that tell you something? If a problem is only apparent in abstract examples, never in real scenarios, is it really a problem? (Actually I just find concrete examples more compelling...)

By the way, I don't think I mentioned proxies. I'm not really sure what you mean there.

To be a little more clear about what I was trying to say about use of ServiceComponent, I just think that it's a bad idea to put anything much in a class derived from ServicedComponent. This is for much the same reason I think it's a bad idea to put anything much inside a class that is exposed via .NET remoting. Either kind of class should be little more than a shim, dealing with the job of being at the edge and deferring to other components to get the job done.

But I think we may be talking at cross purposes here. I regard deriving from ServiceComponent as being not that different a kind of thing from being accessible via .NET remoting. But this is largely because that's how COM+ has always been used on projects I've worked on - it has sat at 'big' boundaries, usually network or process boundaries. Deriving from ServicedComponent seems to be making a strong statement: "This class sits at the edge of the system."

However, it sounds like you're using it on a much finer grained scale. But isn't this precisely the kind of situation that Services Without Components was designed for? They free you from the tyranny of the enforced base class. Deriving from ServicedComponent is not the most appropriate way of using COM+ here is it?

Or were you in a situation where you couldn't use Services Without Components? In which case you were forced to use an inappropriate mechanism.

If that's the case, this would be an example of where MI would provide an expedient hack because bad design has been imposed on you due to the constraints of the system. (And Brad provides another example of the same thing.) I'll buy that.

Do you have any examples of where MI is the most elegant solution, rather than merely a workaround to an unfortunately system? Even if MI were available, you surely wouldn't feel that the resulting solution to this, or to the problem Brad discusses, were ideal?

Ian Griffiths

# re: A plea for full multiple inheritance support in .NET@ Thursday, January 08, 2004 9:34 AM

Ian, I presented an abstract way of the problem, because that would avoid discussions like this. I gave an example, and the answers can be: "but you don't have to do it like this", or "the platform made an error there indeed". It's not a design error, nor a flaw from my side: the problem is generic: mixing 2 or more implementations of interfaces into a new class by BORROWING these implementations from the .NET framework. You can't do that now, you can only do that by doing extra work (wrapping aggregated object or re-implement an interface entirely). I don't call that 'advanced', it's 2 steps back, since C++, COM and ATL have that for years. Furthermore some errors in the framework may be there, the necessity for mixin implementations of several interfaces into a new object is not something that goes away if the design of .NET's framework is changed in some area's. The extra work stays, no matter what you do. In 2004, doing 'extra' work because some designer thought it would be complex to implement MI (generics are also complex, have multiple implementations in the field, still they add them) and 'no-one will use it anyway', is stupid. We're not in 1996 where computerpower was just beginning to increase. Mixin's will solve it forever, plus will opt for more abstract code, because you can write a lot of abstract classes you can finalize in the mixin class. I call that great use of OO. However in .NET I can't, I have to copy/paste the same abstract code over and over again because I can only inherit from 1 class.

Frans Bouma

# re: Serious ASP.NET Editor flaw lives on in VS.NET 2003@ Thursday, January 08, 2004 12:56 PM

I am also having issues with the .net HTML editor, in addition to the automatic formatting problem. Has anyone expereinced the disappearance of OnClick events, set in asp:imagebutton properties, upon saving HTML formatting changes in .net???

Diana

# re: A plea for full multiple inheritance support in .NET@ Thursday, January 08, 2004 2:08 PM

You did indeed, and thank you for your efforts.

The reason I asked for more specifics (and many thanks for providing these too) is mainly because I've heard any number of highly theoretical arguments in favour of MI, and found none of them sufficiently convincing to compete with my practical experience of MI. (And I have actually used it a great deal over the years by the way - you seem to have got the impression that I don't like it simply because I've never used it, which is not the case.) Many years ago, I did buy the theoretical arguments, but my practical experience with MI has mostly turned out a great deal less positive than the theory. So I'm always keen to hear of specific success stories from people who like MI more than I do.

So far my direct experience with actually using MI leaves me feeling that its use is usually a sign of trouble. Brad's example is clearly just another instance of this - he explicitly put forward his example as a workaround to a design flaw in ASP.NET. (The heavy use of mix-ins in ATL is arguably another example - it was there because you didn't really have any choice but to deal with lots of difference concerns in a single object, given the grungy intermingling of the COM binary interface model and the C++ object model implementation.)

I've changed my opinion on this one over the years. I went from not being able to fathom why it might conceivably be useful (that was about 10 years ago), to thinking it might be useful, to thinking it was great, to thinking that it's not so great. (And incidentally, I'm not so against it that I really don't want to see it in .NET. It's just not on my personal wish list.) That's where I am now, but I'd hate to get stuck there on account of closing my mind, which is why I sought your opinion.

(By the way, COM didn't have any kind of implementation inheritance at all last time I looked, so I don't think it's accurate to say that it has had MI for years.)

Anyway, thanks for taking the time to share your point of view!

Ian Griffiths

# re: A plea for full multiple inheritance support in .NET@ Thursday, January 08, 2004 4:05 PM

Saying that MI is not necessary is like an old-style C programmer saying you don't need C++ objects: hey, you can do the same thing with structs and well designed code.

It's about expressiveness in a language. If expressing the problem in MI makes it easier for me, it's necessary. If I perceive the MI solution as better, then MI is necessary.

If you don't share that perception, maybe your problem solving strategies are simply different from mine. Not necessarily better or worse, just different.

John Q. Public

# Great article@ Sunday, January 11, 2004 3:44 PM

This is one of the best blog articles that I've read in a long time, thanks. Remember "Make everything as simple as possible, but not simpler"? - As I see it, _not_ having MI is a case of over-simplification in the language/runtime. The over-simplification leads to unneeded complexity for the application programmers.

Troels Arvin

# re: Weblogs.asp.net / .Text screensaver!@ Monday, January 12, 2004 11:49 AM

Too bad. I am getting into the habit of doing a copy all before hitting the submit button. I got burned a few times when the next page crashed and doing a back got me back into a blank form.

Abdu

Abdu

# Diana - Yes @ Wednesday, January 14, 2004 2:46 PM

See my comment just above yours. This bug has bit me several times.

It really sucks to get a bug report from a client on something that worked yesterday.

Rip Ryness

# re: Stored procedures are bad, m'kay?@ Thursday, January 15, 2004 8:41 AM

What the hell are you saying???

Ericko

# re: Weblogs.asp.net / .Text screensaver!@ Thursday, January 15, 2004 11:00 AM

Any steps to do a clean uninstall? It's nice, but a total CPU hog on my machine.

Charles

# re: Weblogs.asp.net / .Text screensaver!@ Thursday, January 15, 2004 11:05 AM

Set the screensaver of windows to another screensaver, remove the directory you installed it in, done :)

It is a cpu hog, but you don't need that cpu when the screensaver is used ;)

Frans Bouma

# re: Weblogs.asp.net / .Text screensaver!@ Thursday, January 15, 2004 12:34 PM

Well, just wanted to make sure that removing the directory will leave it clean.

And yes, I realize that it's a screen saver :) and I shouldn't need my cpu when it's running, but:

1) My machine is also a web server (application development) which sometimes testers have to access

2) I'm one of those eccentrics (I always turn my machine off when not in use) that believe that every component has a lifetime. Working it harder will shorten that lifetime. I don't think that my system could benefit from the increased heat output of the CPU.

Very nice ss though (just a CPU hog)!

Charles

# re: Weblogs.asp.net / .Text screensaver!@ Thursday, January 15, 2004 12:40 PM

Ah I understand :)

Thanks, yes it is a cpu hog, it just runs around in loops to render as much frames as possible, calculating a lot of matrixes, sines, cosines and projected coordinates in each frame :) so the CPU has erm... a lot of work ;)

Frans Bouma

# re: A plea for full multiple inheritance support in .NET@ Friday, January 16, 2004 3:27 AM

Good discussion. I know i'm late to the party but i've got things to say. Will post that in detail. But do check out my earlier post about MI and my question to Chris Brumme on the same. Here's the link.

http://dotnetjunkies.com/weblog/unknownreference/posts/1401.aspx

Vijay

# re: A plea for full multiple inheritance support in .NET@ Friday, January 16, 2004 8:19 AM

The first commenter has pointed out the link where Brumme answers my question. Well in fact it's not a complete answer but he explains the reasons and difficulties on why it would be too hard to implement it in the .NET Framework. Check it out.

Vijay

# re: A plea for full multiple inheritance support in .NET@ Friday, January 16, 2004 9:55 PM

I too am joining the party late. It's an interesting discussion. As already mentioned, there are those situations where the .Net classes force you to derive from a .Net class to get the required functionality from the framework. This almost always means a duplication of some code. For example:

I wrote a set of DataValidator classes that I can assign to parameter, property, etc. via attribute programming. This requires that I derive from the .Net Attribute class. However, doing this precludes me from deriving from my own set of classes. I managed to get around the vast majority of it with very little duplicate code...but I still had to. Generics may help the problem but they will never be a total solution.

-Mathew Nolton

Mathew Nolton

# re: Oracle 9i is already generations ahead and shows a .NET flaw.@ Friday, January 16, 2004 10:22 PM

Good points, I have been a Sybase/Microsoft user for years (sybase version 4.9.1 was my first...right b4 microsoft oem'd it). Recently I had the chance to work with Oracle pretty hard-core for about 6 months and I liked it. It took a few days of figuring what went where but the programming language (plsql) was overall much better an more intuitive the t-sql (it will be interesting to write c# with yukon but that's another train of thought).

I also don't buy enjoy the flamewars b/w the developers Oracle versus Microsoft. It makes great print but they are both very nice systems. A good friend of mine once said that to sell a lot of software you need 1,000 people loving you and 10,000 people hating you. I am sure the debates help both sides sell a lot of software for Microsoft and Oracle. (consider pepsi versus coke).

Frans, you make some good points but I don't buy the UDT argument. To me it appeared a poor mans implementation of an Object database. True. .Net does not handle UDT's so there benefit is truly limited and therefore they were difficult to explore....but does Java (i really don't know). If they are so nice why doesn't Oracle provide a means to serialize .Net objects in and out of the database (not a blob but an object)? That would be a killer application that would make me consider it a valuable service and possibly switching over to Oracle....

Per the comment made by "re" about Microsoft not being good for super high-end systems. I don't by that either. There are too many numbers out there that state otherwise. The MVCC debate is an interesting one though and one I will read up on.

-Mathew Nolton

Mathew Nolton

# re: Stored procedures are bad, m'kay?@ Sunday, January 18, 2004 12:50 PM

Being from the admin side of the planet, I've have to support applications that both use stored procedures and don't. "In My experience" applications don't perform nearly as well and have had to purchase more equipment to scale vs applications that use stored procedures. Now that doesn't say applications that use dynamic sql don't scale as well. I just have to live the pain everyday of throwing more hardware at enterprise applications that don't use stored procedures.

Steve Schofield

# re: What about Templates and Multiple Inheritance@ Monday, January 19, 2004 4:43 AM

TrackBack

# Followup: The Absence of MI@ Monday, January 19, 2004 5:31 AM

TrackBack

# re: In Defense of Stored Procedures@ Monday, January 19, 2004 6:54 AM

TrackBack

# re: In Defense of Stored Procedures@ Monday, January 19, 2004 6:54 AM

TrackBack

# re: Oracle 9i is only one generation ahead of MS SQL@ Tuesday, January 20, 2004 2:10 AM

I recently had a deep dive into the MS SQL Yukon pre-beta. This can reabilitate it a little:
1. It supports schemas independent of users; users can be granted various schema access
2. It supports snapshot MVCC, and a little better than Oracle does - while Oracle deals with versions on page level, MS SQL works with individual records. This means less data being copied when a record is being split
3. It supports synonyms
4. It supports UDTs. In the complete sense of 4GL languages - fields, methods and properties. It also allows, or course, CLR functions (scalar and table-valued), custom aggregate functions, stored procedures and triggers (both on DML and DDL statements). The promised optimizations in processing all those CLR stuff inside SQL queries are not ready yet, but I was looking to the pre-beta only, so I guess they will make it before the final MS SQL Server 9.0 is released. Thanks.

Sinclair

# re: Oracle 9i is already generations ahead and shows a .NET flaw.@ Tuesday, January 20, 2004 11:05 AM

Sinclair, thanks for the update! It really looks promissing!

Frans Bouma

# Move away from stored procedures or not?@ Wednesday, January 21, 2004 5:23 AM

cannot we use table functions instead

Girija

# re: Thought experiment: Objectspaces will limit interest in O/R mapping@ Thursday, January 22, 2004 6:25 AM

Just a few random thoughts:

First of all, the fact that OS is used both in MBF and in WinFS IMHO show that MS has a lot of interest in this tool and that it is putting adequate resource to the problem. Much more than most of the 1-man-show-O/R mappers in the market can muster. I really have a lot of respect for people like yourself who can build such a great tool as LLGLGen (I never seem to get the spelling right :), so this is by no means meant in personal way.

Availability: Since the PDC many developers have access to OS in one way or another. I have met a fair number of people who don't have MSDN Universal, are not in the Alpha, haven't been to PDC and still have a nice copy of the Whidbey package sitting on their desktops, so I don't think that availability really is a problem.

Maturity: Many tools are called v1.0 when they are in fact v0.9b. Especially a problem with smaller companies. I am working for a small company, so I am not trying to dis small corps per se, it is just a matter of statistics.

Features: My impression is that OS covers >80% of the stuff that is needed for most people. No, it is not a be-all, end-all solution. In fact, no tool is and will ever be. Talking about Oracle, I am fairly sure that someone will use that Provider structure of OS and produce an OS provider for Oracle even before OS ships. It certainly is not a big deal to do that.

Price: OS is free. Kind of. Other tools aren't. So what? - I think most decent projects/companies can easily afford a couple 100 or even 1,000 bucks if the benefit is there. Many amateur programmers don't have that kind money, but they can always use Paul's tool (which is great, btw) :)

Monopoly games: When MS bought that Canadian CMS company a while ago, many MS-based CMS vendors and partners of MS were really pissed. I certainly was. But this is how life goes. In hindsight, it did not do much damage to the market as far as I can see. Some vendors lost some business and had to move their ass to innovate beyond the crappy MS CMS. Some did well, others failed. But the same thing would have happened if some brand-new Corp X suddenly came up with a new and brilliant CMS. So, I don’t think MS is going to ruin the O/R landscape by putting out a new (free) tool.

Result: I think O/R vendors have a tremendous opportunity ahead if the manage to innovate. Analyze OS as I am sure you already did, find the problematic areas, difficiencies and things that suck and build a tool that does better. Given your stance in the ‘community’ I think you will do pretty well!!

Marc Hoeppner

Marc Hoeppner

# re: Thought experiment: Objectspaces will limit interest in O/R mapping@ Thursday, January 22, 2004 6:47 AM

Just some answers:

::First of all, the fact that OS is used both
::in MBF and in WinFS IMHO show that MS has a

Since WHEN is Objectpaces used in WinFS?

Must be new news.

Thomas Tomiczek

# re: Thought experiment: Objectspaces will limit interest in O/R mapping@ Thursday, January 22, 2004 7:26 AM

If I remember correctly, I got that from Luca's presentation on the PDC, but I'll try to find a good quote somewhere.

Marc Hoeppner

# re: Thought experiment: Objectspaces will limit interest in O/R mapping@ Thursday, January 22, 2004 8:08 AM

::If I remember correctly, I got that from
::Luca's presentation on the PDC

If I got it right, they use the same API and query language, but ObjectSpaces is not really used as engine.

WinFS is imho NOT built on ObjectSpaces.

Thomas Tomiczek

# re: Thought experiment: Objectspaces will limit interest in O/R mapping@ Thursday, January 22, 2004 8:53 AM

Objectspaces will limit interest in 3rd party O/R mapping solutions.

Yes it will, unfortunately.

Paul Gielens

# re: Thought experiment: Objectspaces will limit interest in O/R mapping@ Thursday, January 22, 2004 8:54 AM

While I don't disagree that MS can kill competition I disagree that ObjectSpaces will result in O/R mappers going away. There is already a growing group of vendors/communities writing O/R mappers. Each one has its pros and cons - which ObectSpaces will have to beat or not be used. For me personally, ObjectSpaces will have to support more databases than SqlServer and Access.

We really have two classes of developers in .NET - the enterprise developer and the business guy who is developing. This is a huge generalization - but I would consider the business guy lost to MS - unable to explore beyond the namespaces that ship with the framework. What we have to be able to do as developers is sell the best of breed solution to our management, regardless of who the vendor is. It seems we so often fall into the trap of doing the easy thing and just using what is given to us by MS.

The enterprise guy is someone who reads a blog entry from a company president and is open to giving it a try - even when they have used an MS product for years, or sees a "N" infront of a Java project (Ant,JUnit,etc...) that they have used for years and realizes that it should be tried in .NET, or etc...

The enterprise .NET community is really growing, you can tell by some of the new sites popping up and better discussions on blogs. We are getting beyond the discussions of how do you drag a table onto a form. This is the group that will use any technology because it is superior - wether it comes from MS, Thona Consulting, or from SourceForge.

Don't sell the enterprise community short by saying MS will kill O/R mappers. If you develop a good product and put a good face out there it will probably find a market. Maybe the enterprise community can hollar loud enough to get MS to start producing open specs along with their products. Even though there are alot of complaints about the JCP, atleast it exists.

Mike Doerfler

Mike Doerfler

# re: Thought experiment: Objectspaces will limit interest in O/R mapping@ Thursday, January 22, 2004 9:12 AM

Guys, correct me if I'm wrong, but if the Java O/R mapping scene is vibrant and healthy, surely there'll be no end in sight to porting these same tools to C#, thereby keeping the.Net O/R mapping scene just as vibrant simply because it's so easy to do (porting I mean).

senkwe

# re: Thought experiment: Objectspaces will limit interest in O/R mapping@ Thursday, January 22, 2004 11:36 AM

senkwe,

Frans point is that since MS is providing OS for free in the Framework that most people will choose to use that or stick with DataSets rather than buy a 3rd party O/R mapper. I'd agree with that. I don't think we'll see a lot of O/R mappers, ported or created from scratch, once OS escapes....err...is released.

I think he makes a good point about OS being limited to SQL server. I think that developers that are used to doing O/R mapping using a framework and that need to use !MS SQL as their data store may look to 3rd party tools. But that will be MUCH smaller audience than exists now.

If I were planning on writing positive articles about O/R mapping, and I may if I can get off my lazy butt and write, I'd take the tact that you end up doing O/R mapping in your code whether you use an O/R mapper or you use DataSets. Show how it's easier to do that mapping using a 3rd party O/R mapping framework rather than in your application code, especially when it comes to refactoring your application.

Scott

# re: Thought experiment: Objectspaces will limit interest in O/R mapping@ Thursday, January 22, 2004 12:29 PM


I don't see why companies like Business Objects would be interested in supporting yet another layer. You might know that Business Objects is successfully implanting their semantic layer in the products since the early 90s. And a special layer already drives whatever database you might think on whatever platform. In this regard, supporting ObjectSpaces would be just another Business Objects driver.

I see ObjectSpaces as the "yet another ultimate universal data access canvas" that will be superseded by the next one. And those balls are rolling for a decade or so. I don't see why ObjectSpaces would become the de facto standard to access SqlServer in an object manner while there have been many improvements on the ADO.NET 2.0 side. And this, not to mention the xml queriers.

There is also one thing about ObjectSpaces and the like. Translating automatically an object-like query into an SQL statement is fine but there is just one problem : in the real world, there are many issues regarding really useful SQL statements used in data mining or so-called layers that insulate people from the technical intricacies of the database. And this lind of things involve aliases, integration resolution, loop solving, ... basically what a lot of products and data access layers are doing (the Universe in BusinessObjects's semantic layer). Unless I have missed something, there does not appear to be anything related to this in ObjectSpaces.

Stephane Rodriguez

# re: Thought experiment: Objectspaces will limit interest in O/R mapping@ Thursday, January 22, 2004 7:00 PM

You, of course, are assuming that ObjectSpaces sucks. However, quite to the contrary, ObjectSpaces blows away any O/R mapper currently available (even without any IDE support). OPath queries alone are a huge feature that every other implementation should have supported a long time ago.

Jesse Ezell

# re: Thought experiment: Objectspaces will limit interest in O/R mapping@ Thursday, January 22, 2004 7:01 PM

PS: Oracle, etc. support will come with time (and can be implemented by anyone). 99% of .NET developers are going to be running on SQL server anyway, so it is almost a moot point.

Jesse Ezell

# re: Thought experiment: Objectspaces will limit interest in O/R mapping@ Thursday, January 22, 2004 8:15 PM

At the PDC2003 a new, powerful framework for developing flexible business objects, called MS Business Framework (MBF), was presented. This framework will come as a layer on top of VS.NET and will be introduced with Whidbey Enterprise Architect at no cost. Many programming chores will be automated and with Orcas this automation will go even further. Here's the key point: MBF will be intimately tied to Object Spaces (OS). Therefore, my guess is MS will put a LOT of resources in improving OS with respect to features, speed, etc. because otherwise the MBF is doomed to fail and with it MS's grand vision of dramatically boosting programmer productivity. See the corresponding PDC video presentation at http://microsoft.sitestream.com/pdc2003/ --> click "Data Systems" --> click "DAT34o-Developing Apps Using the MS Business Framework".

Reto Caviezel

# re: Thought experiment: Objectspaces will limit interest in O/R mapping@ Thursday, January 22, 2004 8:22 PM

You, of course, are assuming that ObjectSpaces sucks. However, quite to the contrary, ObjectSpaces blows away any O/R mapper currently available (even without any IDE support). OPath queries alone are a huge feature that every other implementation should have supported a long time ago. Oracle, etc. support will come with time (and can be implemented by anyone). 99% of .NET developers are going to be running on SQL server anyway, so it is almost a moot point.

Jesse Ezell

# re: Thought experiment: Objectspaces will limit interest in O/R mapping@ Friday, January 23, 2004 3:17 AM

The "YOU" in your remark, Jesse, is that someone in the comments or is that me? If it's me, you're mistaken, I never assume things and say something else. I never said it sucks, so I don't assume it will suck totally. There are severe disadvantages of using Objectspaces over another O/R mapper tool.

OPath IS bad. It is not typed, it's strings parsed at runtime, which will result in typo's causing errors you'll only see at runtime (and after testing), while it can be done in a full typed way. I don't know what you mean by "that every other implementation should have supported a long time ago.", because every O/R mapper out there has an object query system using some sort of query language. A lot of them use strings which are parsed at runtime, some use 100% typesafe objects to construct the queries like mine.

Oracle will not be implemented by a 3rd party, simply because it requires changes to the query engine of objectspaces: it now cranks out SqlServer SQL which is totally incompatible with Oracle and for example sequenced fields require extra information that can't be stored at the moment in the objectspaces files.

Frans Bouma

# re: Stored procedures are bad, m'kay?@ Friday, January 23, 2004 12:24 PM

I came across this thread while looking for some concrete evidence on weather I should move my all to SPs or stop using SPs all together.

I have to say that this argument over performance, reusability, ease of change is very interesting but…..

Every time I have this discussion with my developer buds it breaks down into two camps; those that come from a classic programming background and those that come from a relational database background. Programmers want to proceduralize everything because this what they are used to. The database people what to use the power of the relational database to (as I term it) “let the data flow”. I come from both backgrounds; I started as a developer but then moved on to using case tools to do full life cycle development. Most of these tools require a firm model upfront so eventually I turned into a DBA and relational modeler.

What I am getting at is; stored Procs were included for classic programmers, people whom are comfortable with procedural programming.... i.e. I want to get result “C” but to get “C” I first need result “B” and I can only get result “B” if I have result “A” therefore I’ll write a proc that gives me A and then B from A and then C from B.
Views are for those who can think in a multidimensional way and can be a convenient short cut around this type of logic. I want “C” so I’ll just build a view that puts A and B and C together and gives me what I want. (or I’ll build a view that gives me “B” and then write a bit dynamic SQL to give me “C” from “B”)

I think it is really important to take this into consideration when we are talking about application performance. From the posts I have read, I don’t think everyone has been talking about the same thing. People need to specify if they are talking about SQL sever performance or total application performance. Let me give you and example, regardless of weather I use View or SPs what I want from my database will determine how I write the complete application. One of the posts I saw up above made a comment about how an SP could save you multiple round trips to a server. I assume that by this context this person is only familiar with writing very simple views and is not thinking that I might WANT to make multiple round trips to the SQL server. If I need the data separately and persist it on my application side then by far multiple trips is more efficient for my “Application” especially if I never get to the point where I need “C”. Now on the other hand if I only need it all and I made multiple round trips to the server for it yeah, it would be a waste of resources. My point is that from the point of view of the server, the calls are the same. It could SP-A, SP-B, SP-C, or View-A, View-B, View-C… I doesn’t matter performance is not a really a matter of SP versus View it is really a matter of application design. No SP or View or SQL Cache is going to go to save you if you application design sucks.

Use what you are comfortable with and what is appropriate, BUT don’t be afraid to try and use the other. Or use them together. There is nothing that says an SP cannot access a view or multiple views. I love SPs for things where it is appropriate, say.. deleting an entire object tree from the database. This requires a simple param or two, can hit 100 entities and doesn’t require anything other than a go from the application side. On the other hand if I need to aggregate data and get it out of the database, transform it merge it, filter it etc. etc. I’m going to use a view because it just makes more sense because this is what a view is for. Not only that but if I ever have to migrate to another platform (MySQL, Oracle) I can migrate my views in about 1/3 the time it will take to migrate an SP. I’ve done this, just try to migrate an SQL SP to Oracle… it’s not easy.

Ok my last point…. I promise… regardless of weather you use SPs or Views if you want to improve performance test it and look at the SQL execution plans, pick the best one and provide a pre set execution plan for the SQL server for the proc or the view. If you can determine the most efficient execution plan for either and provide this upfront, you will save the SQL server significant time in trying to figure this out when it as fallen out of the cache.

Justin Ohms

# Source Safe is slow when checkin or checkout a project from Visual Studio .NET@ Friday, January 23, 2004 1:06 PM

Besides defragmenting hard drives, slow hard drives, size of database on VSS. Is there any feature or option in Visual Studio .NET causing slowness when checking out a project from Visual Studio .NET.

Thank you
Hung

Rich

# re: My wish-list for the next Visual Studio.NET release@ Sunday, January 25, 2004 1:15 PM

Editor tabs in VS are displayed like tabs and behave like MDI Child windows. When you press control+tab, the focus goes to next in the "Z-Order" not to the next tab page!. This is confusing and is moving away from the normal working of Tab Sheets!

harry

# re: My wish-list for the next Visual Studio.NET release@ Sunday, January 25, 2004 1:23 PM

Oh! I forgot to add one more.
In Delphi *which is still better and easier component oriented IDE, according to me*, has very good Bookmark handling. You can press Control+Shift+<number 0..9> to anchor a bookmark and Press Control+<number 0..9> to go back there. That makes navigation very easy. I would really like to have that. Probably there should be an option to treat bookmarks across files, so that you can press Control+number to go to a book mark in another file (which may not be opened yet). And as Frans Bouma said, bookmarks must persistent with an option to clear them all, when you want to do it.

harry

# re: Thought experiment: Objectspaces will limit interest in O/R mapping@ Monday, January 26, 2004 9:30 AM

Whinning that MS "is thus killing businesses" is soooo lame. Write a superior product ( that supports the major RDBMS ...2 DBs is a joke) and there you be quite a few people that will be interested in it.

Gheorghe Marius

# re: Thought experiment: Objectspaces will limit interest in O/R mapping@ Monday, January 26, 2004 9:36 AM

You really didn't get the point of the article, Gheorghe.

It's about where developers START and where they eventually end up. Perhaps you think developers start with Google and search for "The" best tool, but most developers start with the MSDN docs and vs.net and only if that truly fails they'll look for something else.

Frans Bouma

# re: Thought experiment: Objectspaces will limit interest in O/R mapping@ Monday, January 26, 2004 8:13 PM

Actually Gheorge, LLBLGenPro is a superb product (and Frans didn't pay me a dime to say that!). Support for SQL and Oracle is great and not a joke at all, given their marketshare in the PC environment. You want support for tens of databases, go pay your $100 000+ to someone...

Further comments: O/R mappers are not just for enterprise shops. My small dev shop is benefitting greatly from using LLBLGen, as I am sure are other more lateral thinking businesses, employing O/R tools right now. Geez, O/R mappers save so much time, the benefits are immense.

I certainly won't be jumping over to MS OS V1 when it eventually arrives, as long as tools like LLBLGen are delivering the goods TODAY.

Don't give up Frans!!! (...or Thomas, or any of you other guys doing great work)

John Butler

# re: Thought experiment: Objectspaces will limit interest in O/R mapping@ Tuesday, January 27, 2004 3:47 AM

Hi John! :)

We won't give up, don't worry :) O/R mapping is a great technology, and once you've used it, there is no way back :)

Frans Bouma

# re: Stored procedures are bad, m'kay?@ Tuesday, January 27, 2004 1:51 PM

I use stored procedures exclusively. No one is allowed direct access to the tables. Here's why:

1) Using inline (or 'dynamic') SQL, you assign permissions for a give table for select, insert, updates and deletes. When you give select permission to a user/group/role, you allow them to execute whatever they want against the table (or tables). By using sprocs, you keep a newb from opening access (or excel for that matter) and running a cross join that takes down your entire production server.
2) SQL injection - If you run inline sql and aren't scared of this, well, you should be using access anyway.
3) Complexity - In a big datashop, a two table join just ain't gonna cut it. Try setting isolation levels, nested transactions with save points and doing server side performance traces.

Dynamic SQL has it's place. Usually it's in smaller projects that don't have security, performance or ACID concerns.

Darren Fix

# re: Stored procedures are bad, m'kay?@ Tuesday, January 27, 2004 8:05 PM

Everyone seems to be ignoring the performance tuning aspect of this debate. Its very difficult to evalutate index usage when all of your data access code is in the middle layer. So much for tuning your indexes.... Also, since so many people have refernece the MS SQL server docs, you might all be wondering what Microsofts position is on this debate: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/optimsql/odp_tun_1a_6x45.asp

Mike

# @ Tuesday, January 27, 2004 11:40 PM

TrackBack

# @ Tuesday, January 27, 2004 11:42 PM

TrackBack

# .NET Reality Check - a matter of 'Pragmatic R@ Wednesday, January 28, 2004 2:19 AM

TrackBack

# .NET Reality Check - a matter of 'Pragmatic R@ Wednesday, January 28, 2004 2:25 AM

TrackBack

# re: .NET Reality check, my €0.02@ Wednesday, January 28, 2004 5:42 AM

Valid point, although I think a lot of effort does goes into current-version-software support - but not necessarily on the weblogs.

Snorrk

# re: .NET Reality check, my €0.02@ Wednesday, January 28, 2004 5:47 AM

If that's true, why isn't it showing? Can you point me to a set of fixes to problems in .NET 1.1 or better: vs.net 2003? I can't.

Frans Bouma

# re: .NET Reality check, my €0.02@ Wednesday, January 28, 2004 6:15 AM

Hmm...well, Weblogs are not really 'customer support forums' - in the actual newsgroups and ASP.NET forums, MS employees pretty much exclusively talk about .NET 1.1 - I do agree that there's too much emphasis on MSDN to do with Longhorn and Whidbey (for Longhorn at least, this is probably the whole marketing ploy thing - trying to increase the number of Longhorn apps way in advance of launch to increase the 'critical mass' for product launch).
For Weblogs however, MS employees are in no way obligated to provide support in any capacity, they are however talking about the cool new technologies they work with (as we all are) - they just happen to be working with technologies that most of us won't be using commercially for 2-3 years yet...

Scott Galloway

# re: .NET Reality check, my €0.02@ Wednesday, January 28, 2004 6:18 AM

Good point from Frans though...I've seen lists of bugs, but very few 'here's the bug' and 'here's how to fix it' type posts (usually have to trawl through dozens of Knowledgebase articles which are only vaguely related then discover I have to call PSS to get the fix - which I can't redistribute to my clients...). On the bright side, .NET Passport is WAY worse...it doesn't even work properly on .NET Server 2003!

Scott Galloway

# re: .NET Reality check, my €0.02@ Wednesday, January 28, 2004 6:25 AM

Scott: I don;t consider weblogs as 'support', though they add to the hype building, but I don't consider them the cause of the frustration, the general channels towards developers are the cause of it (PDC, DevDays, MSDN etc.) and the lack of support which IS there. I read the C# newsgroup mostly (and the ADO.NET newsgroup) and I never see an MS employee explaining things in the ADO.NET newsgroup and rarely in the C# newsgroup. It's on the shoulders of the MVP's and other volunteers however these people can't fix broken code in .NET. Reading the VS.NET newsgroups is even more frustrating. I mean, if you count the amount of threads about the project listing on the start page in vs.net, you'll be stunned.

Frans Bouma

# re: .NET Reality check, my €0.02@ Wednesday, January 28, 2004 9:09 AM

I agree that the current crop of problems need to be fixed. Where is the ASP.NET 1.1 update that has been talked about in the support knowledge base for at least 6 months? You have to call MS support to get it. That's where the problem.

However, I disagree on some other issues. I don't object to MS talking about Yukon, Whidbey, and Longhorn though. As a customer I want to know what MS is doing and the directions that they are headed in. They have never said that Longhorn was right around the corner. All signs have pointed to 2005 or 2006 for a release. I have heard unofficial talk of release dates on other products, but I have not heard anything definite from MS. Anyone that has seen Whidbey and Yukon knows that MS still has a ways to go. They have alwaysed used the term "When its completed" to state when they are planning on shipment. I think that doing that is healthy for the community and helps me as an author and developer know where things are going, what to concentrate on and what not to. I do not object to this type of marketing provided MS is providing code samples, bits, and suggestions. That is the best way to market to a developer.

Wally

Wallym

# re: .NET Reality check, my €0.02@ Wednesday, January 28, 2004 10:52 AM

Too often the examples provided by MS are trivial.

Design time support in VS.Net is a great example of this.

I can't sell designers (people) on the idea of something that says "[This is the control]", they wont accept it.

I read Nikhil's book recently and it was a great review, but there could be a book that size just on design time.
Lots of people here have read the book, and they make controls that display "[the control is here prop1 = someVal]"

I have gone down the rabbit hole with designers.

It is commonly believed that you cannot get at the web config at design time and yet to do so is trivial once you realize how.



AndrewSeven

# .NET Reality Check...@ Wednesday, January 28, 2004 12:16 PM

TrackBack

# Keeping up with Microsoft.@ Wednesday, January 28, 2004 2:24 PM

TrackBack

# re: Stored procedures are bad, m'kay?@ Wednesday, January 28, 2004 4:32 PM

Effective system design is never a 1-size fits all. To be an effective application architect you need a full set of tools in your tool-belt. Otherwise, if you all have is hammer, everything looks like a nail.

Never say never. Use the appropriate technology for the job. Appropriate has a lot of meaning here, standards and common techniques are important in a large organization.

Small one-off business needs can often be met quite cost-effectively with tools like MS-ACCESS. (Even though I don't want to be an ACCESS programmer, my personal choice is rarely in alignment with the goals of the business)

The one thing that really gets me the most, is that when some folks talk about 3-tier design, they really only include the middle tier and the client interface, and simplify the database server to the role of 'persistence'.

If you aren't maximizing the capabilities of all 3 tiers how can you call this 3-tier design? (Isn't it really 2-tier design that comes along with a database...for reasons that aren't very clear to some Java guys who prefer flat files!)





Dave

# re: .NET Reality check, my €0.02@ Wednesday, January 28, 2004 8:37 PM

I don't mind the weblogs talking about future tech, or the hype at PDC, TechEd, newsgroups etc... What I mind is the saturation and promotion at microsoft.com. The fact that the old tech suddenly "sleeps with the fishes" and is persona non grata in the resources we use every day. Not to mention the obvious manipulation of the search engines at MSDN.

weird huh? I made similar comments over in Korby Parnells comments.
http://weblogs.asp.net/korbyp/archive/2003/12/16/43952.aspx

"<rant>I'd like to point out that of the top 3 "Technical resources" links that search.microsoft.com returns, 2 of them are for Whidbey. Which isn't even out yet?!

That's the biggest problem with searching MSDN, every time Microsoft puts a fricken app into beta suddenly that's all you can find at MSDN. Information about the new tech that we can't use yet. That's great that you are giving us new information that we'll need in the future. But what about now? I'm not using Whidbey now, I'm using 1.1. I've even got Longhorn and Indigo crap turning up in my searches and that won't be out for 4-6 years! I dont' need to see that. </rant>"

P.S. quoting myself? Where will the ego stop!?

Scott

# re: .NET Reality check, my €0.02@ Wednesday, January 28, 2004 8:42 PM

(This is my opinion and my opinion only, and has nothing to do with my employer’s opinion. This post is presented as is and all the usual legal warning…)

I don't really agree. "Hype" tends to imply some sort of marketing buzz, which purpose is just to get people excited about partial information. I do think there is a deliberate marketing effort put into "hyping" Whidbey from Microsoft, I also believe most of it (in this community at least) comes from MS employee on their blog that just talk about their job and what they're doing. They don't hype "the future", they talk about their present and what they are doing every day of the week. I completely understand that what they're talking about is often months away or more and this is the source of a lot of frustration. But this is a radical change from the past where MS would just keep everything more or less secret until quite late in the development cycle.

I also get the frustration of making every answer to most problems “the next version is going to solve that”. For the most part, working on the web minimize that problem: upgrading and evolving software can be a continuous process. You develop an improvement to the current version; you can just deploy it to the server. The dependencies are minimal.

So why does it end up being like that? For the most part, I think this is due to the nature of shipping “shrink wrapped” software. When we code a given version, at some point we say “stop” and we don’t add any new feature, we stabilize the code for a while, then we branch the tree and ship a beta. At this point we have two branches, the current branch to which we start to add new things again and the “beta branch” we’re trying to get stable enough to publish. The fact that we have to stop adding things to get the software above what we think is the quality bar for a release creates the “it’s all going to be better in the next version” problem. We don’t touch the beta version, except for bug fixing and as we’re getting closer and closer to the ship date the bar on what’s an acceptable change keeps rising until we only accept critical fixes (security is a good example).

Meanwhile the other version is already far along and moving thing from one branch to the other is very time consuming since a lot of things have moved and changed. So once the software is shipped, and to be honest, even once it’s in the beta stage; it is very costly to do something about an issue in any other place than “the next version”. That’s the precise reason why we want people to take the opportunity to review what we’re doing before reaching that point.

I am not sure I made my point clear enough for everyone to understand :) And I am not sure my English is very good today either... but in the end I think it's all a matter of balance in the way we present things. We tend to get excited about the work we do (I mean, show me a programmer who isn't?) and thanks to blogs some of us are now talking directly to the public. But I believe that's the cost of getting the raw information and being able to participate in the feedback loop early on. Is that "hype"? I personally don't think so. Do I like it when people get excited about what we're doing in Whidbey? I sure do and it's a great motivation.

Julien Ellie [MSFT]

# re: .NET Reality check, my €0.02@ Wednesday, January 28, 2004 8:50 PM

Oh, btw, reading answers that came while I was typing this message I completly agree that when you search for something on MSDN, beta software should be in an independant section and you should be able to limit your search to "current technologies only" easily.

Once again I think this comes from a different reality for MS employees and other developpers. For MS the present IS the next version and when you're burried every day in whidbey stuff, you're excited about it, it really takes an effort to step back and realize that most of people are using Everett. I personally think this is something we need to work on harder in the future and your post is a great way of making us realize that.

Julien Ellie

# re: Thought experiment: Objectspaces will limit interest in O/R mapping@ Thursday, January 29, 2004 8:43 AM

@Frans w/ regards to your reply to Gheorhe:

It is true that many developers will start with OS in the future, simply because it is 'free' and 'there'. But the same is (was) true with LLBLGEN and other tools. (Of course one didn't find it in MSDN, but these tools are easy to find in Google and/or newsgroups). And IMHO OS will be fine for many of them.

BUT: there are still a lot of developers out there who may or may not be interested to go beyond what OS offers to them. You named quite a few deficiencies yourself. Unless MS changes that in their finally release, I believe that many developers will first try OS, release the problems, make a decision to look for something else and indeed end up opening Google and/or ask for help in the newsgroups to look for 'O/R' and other keywords...

Marc Hoeppner

# MySQL and .Net@ Thursday, January 29, 2004 9:59 AM

TrackBack

# re: .NET Reality check, my €0.02@ Thursday, January 29, 2004 7:32 PM

I'm also getting a tired of the whole FVPS (Future Version Promotion Syndrome) going on. It's not just MSDN, it is also GotDotNet, ASP.NET and countless other websites trying to show how cool and on-the-ball they are by publishing articles on all the great things we'll be able to do....one fine day, subject to countless features changes and things that got dropped because there wasn't enough time to put them in etc.

Enough already....keep us informed, yes....swamp us with endless articles on how cool the "new" stuff is compared to the current version us schmucks have to use is...no!

John Butler

# re: Hostile attitudes@ Friday, January 30, 2004 6:33 AM

This is really great! I'm dutch too and as you I don't speak/write English that well. I can understand most English movies without subtitles but when people use not often used words or technical stuff, I get confused. And I never use those 'difficult' words myself, because I just never think of them.

Anyway, I just think people can't handle the truth. I always hear on projects that we're all professionals and that we should be able to take criticism. But believe me, not many people can. For me, I like it. Sometimes I too feel offended, but then think about what I gain when I take the advice of the other person.

Ofcourse, sometimes people can be a little rude. I don't think you are. At least not on a level where people should feel offended! :)

Dennis v/d Stelt

# re: Hostile attitudes@ Friday, January 30, 2004 6:55 AM

Frans, I have found you to be hostile and misinformed when posting about my code generation tools. For example, <a href="http://weblogs.asp.net/pleloup/archive/2003/06/17/8802.aspx#16797">this comment</a> you left on this post about nTierGen was just wrong. I am all for competition, but I do not believe in just belittling the competition without even researching it first.

Gavin Joyce

# re: Hostile attitudes@ Friday, January 30, 2004 7:06 AM

Perhaps you should add, Gavin, that you didn't nor don't leave any oppertunity pass by to promote your tool as god's gift to mankind. We had our discussions in the past, I haven't forgotten them.

The comment you link to I make a 1 sentence remark about your tool and I still think it's a correct remark. The rest of the comment discusses the 'n-tier' term which should be seen as a general term instead of be seen as a tight set of rules (i.o.w.: if I think n-tier means something else than you think it means, I can)

If you can't stand me being honest about my opinion about the code your tool produces, Gavin, I'm sorry, but I'm not shutting up because you can't stand criticism. Perhaps you've improved it in the period passed, after all the comment is rather old and the version I tested was even older.

If you're one of these persons telling others how rude I am, I'd like to ask you to tell me first in the future instead of talking to others about me.

Frans Bouma

# re: Hostile attitudes@ Friday, January 30, 2004 7:10 AM

<goldmember>I'm Dutch! Isn't that wieeerd?!?</goldmember>

Goldmember

# re: Hostile attitudes@ Friday, January 30, 2004 7:22 AM

Dutch here as well, i completely understand what you mean

One side effect of this is: when a native-english person WANTS to be hostile towards you we could interpret it as normal... :p

David Cumps

# re: Hostile attitudes@ Friday, January 30, 2004 7:40 AM

Frans,
The problem is not only language, there are also large cultural differences between English speaking countries.
The British are more able to give/receive criticism and less able to be complimentary and pat each other on the back than the Americans, so both perceive praise and criticism levels differently.

Daren

# re: Hostile attitudes@ Friday, January 30, 2004 7:51 AM

Frans said - "If you're one of these persons telling others how rude I am, I'd like to ask you to tell me first in the future instead of talking to others about me."

I came across your blog entry today, and left a comment. No more, no less.

Frans said - "Perhaps you should add, Gavin, that you didn't nor don't leave any oppertunity pass by to promote your tool as god's gift to mankind."

Emm, I don't really know what to say. I have never held these beliefs.

I just wanted to point out that your comments were on an early beta version of my tool, the version at the time was v1.3.

I think your reply to my comments have validated that fact that you have a Hostile Attitude.

Gavin Joyce

# re: Hostile attitudes@ Friday, January 30, 2004 8:01 AM

It's not just the cultural difference, it's a person's attitude and background. You are mostly very outspoken about things, and that's your right to be. But when opinions are presented like that's the only truth, and there can be no other thruth, you reveal you beta-background. As a result, your statements can be considered bold, not hostile per se, in any language. My alfa-background tells me that my view on reality is only my view, and I appreciate and investigate other views as well. At least I try to...
Oh, I'm Dutch also as you may know.

Sander

# re: Hostile attitudes@ Friday, January 30, 2004 8:03 AM

Gavin, you point to 1 comment I wrote in june 2003. That's then your proof I have a hostile attitude, because that's what you said in your first reply in this blog.

I don't know what to answer to that, other than to recall some of the discussions we had in the past, which weren't friendly I admit. I can only conclude that you added that single line I wrote to the old discussions and made that the basis for your conclusion: Hostile Attitude.

You then take my reply here and use that too for your conclusion. I can only say: that's your opinion. You say you just left a reply, no more no less, but I doubt that, as you can't deny what happened in the past.

"I just wanted to point out that your comments were on an early beta version of my tool, the version at the time was v1.3."
No, you didn't point that out, you linked to 1 line of text which said something bad about your tool to show that what I say is a result of a hostile attitude. Btw, I didn't test the 'early beta' I tested the 1.1 version if I'm not mistaken

Frans Bouma

# re: Hostile attitudes@ Friday, January 30, 2004 8:08 AM

Frans said - "Btw, I didn't test the 'early beta' I tested the 1.1 version if I'm not mistaken"

You are mistaken. You original comment stated -

"My comment on the nTiergen code was more towards that it seems very 'hacked together' (at least to me). I've betatested it, and it fell apart a lot, however some ideas were good. "

You tested a beta.

Frans said - "I can only say: that's your opinion [that you have a hostile attitude]"

Yes, this is my opinion. Thank you.

Gavin Joyce

# re: Hostile attitudes@ Friday, January 30, 2004 8:13 AM

Sander: with the risk to brag, I can say I'm really good in what I do: writing software. That's not because I was born that way, but because of education and a long period of experience. I'm not the average employee who sits his hours in an office waiting to go home, I spend 12+ hours per day on my profession. That makes me, IMHO entitled to have an opinion about things related to my field which IMHO can be seen as an opinion which might be close to a reality (different POV's can result in different realities, see economics for that :)). Therefore I don't see my opinion about stuff in my field as just an opinion anymore. That's very arrogant perhaps, but I'm not every day's nittwit with a keyboard.

HOWEVER I do know where my weaknesses are. If you've read Eric Sink's article on MSDN, you know that if you want to keep your business, you have to know your weaknesses. A couple of years ago, I'd argue that my opinion about a random topic was how it truly was, but that's of course stupid. So what you say about appreciating input of others, investigate further until a view is formed/expressed, that's something I try to do too on areas I'm a dumb newbee, or in areas where I'm not an expert but a novice at best.

However, it's sometimes hard to be outspoken and not be seen as an arrogant bastard, even though you're right. I think that's life, and I'm comfortable with that, however when I do my best to not to be blunt or impolite, which is in the vast majority of messages I write, it IS hard to face conclusions like "Hostile attitude". I'd like to know where these conclusions come from. :)

Frans Bouma

# re: Hostile attitudes@ Friday, January 30, 2004 8:18 AM

Gavin, do you have a problem with the conclusion I wrote down or do you have a problem with my attitude? Do I have to dig up the stuff you said about LLBLGen?

If you have a problem with a conclusion I wrote down, you can write me, my email address is well known and I believe you even have it. I then can take the time to elaborate it, ask it to be withdrawn, give an appology etc. However you never did that. You simply read it, and drew conclusions which seem to be valid till today, and which are based on a few blog replies apparently.

Frans Bouma

# re: Hostile attitudes@ Friday, January 30, 2004 8:27 AM

I've personally learned a lot from both you Frans and Thomas, so I very much thank you for the debates. I appreciate boldness, although sometimes all of us bold guys don't leave much room for a different view. Note that I didn't say you were hostile -- I said others have said that, although maybe I shouldn't have repeated it in those words. I think of your debate with Rob as a great example where most readers never had a clue that you were talking about O/R mappers -- it just appeared that you were taking on Rob to many. I learned once again from that discussion, but you failed to get the simple message across -- which you should appreciate since you also came from the stored procedure side of the fence. Anyhow, I do very much appreciate your bold words, even those about the simpleness of my tool since that is very true -- what's not true (which you didn't say) is that I'm ignorant just because I made different design decisions. One last thing, I do tend to forget that you and Thomas and others are not native English speakers, which must be very difficult, so I'll try to be more understanding, but just keep in mind that you have many readers that also never consider this aspect.

Paul Wilson

# re: Hostile attitudes@ Friday, January 30, 2004 8:36 AM

Paul: I think the debate with Rob was for some a reason to think I'm an arrogant prick. However Rob was wrong in a lot of things he said and admitted that later on. I could have written the texts smoother, not that bold, but I think that enough has been said about a lot of topics, like how stored procedures are supposed to be great or other 'holy war' material :) and I think it's time to put an end to a lot of myths out there in our field. Writing a bold, outspoken article can then indeed be a reason for others to believe that the writer has a hostile attitude. Thanks for reminding me of that discussion, I think some people's conclusions can be traced back to that discussion I think.

Frans Bouma

# re: Hostile attitudes@ Friday, January 30, 2004 8:45 AM

Paul rubs me the wrong way at times too, so I wouldn't sweat it. He frequently comes off intolerant of noobs, but it's something I try to overlook because he generally has some good things to say.

jeff

# re: Stored procedures are bad, m'kay?@ Friday, January 30, 2004 9:30 AM

Well you argue your point very well. So long as your goal was to arbitrarily manipulate facts and data to simply propogate your own personal ideal. The problem with this train of thought, is that you are trying to place a global solution blanket over all problems and this automatically diminishes your effectiveness in the IT industry. You see, the simple truth of the matter is, dynamic sql, in-line sql, and stored procedures all have their place in todays application world. I have spent the better part of the last 6 years working on large scale web applications with million+ count user-base and I can tell you from research and real-world observation and study, that stored procedures are not bad. In two specific applications, we received a 15% performance improvement just by changing from dynamic sql to stored procedures. Despite what you say, maintenance nightmares exist for either method, you simply chose to ignore those of dynamic sql and focus on those of stored procedures. Dynamic sql simply is not as fast, is not as secure, and has just as many (if not more) maintenance issues as stored procedures. But.... some applications don't require that and based upon the needs of a particular application dynamic sql may indeed be the better option. Be careful throwing around blanket statements especially without real-world examples and observation from BOTH sides of the street. Your clients will appreciate it as well.

Brian Duncan

# re: Hostile attitudes@ Friday, January 30, 2004 9:36 AM

It's often hard for people to deal with someone who points out obvious mistakes, people tend to take it very personally.

I myself haven't had much problems with Frans' direct approach (maybe because I'm Dutch too :) )

Thomas on the other hand can be quite rude, even to potential new customers (which made me decide not to buy his tool...), so I agree 50% with Pauls remarks.

Peter

# re: Hostile attitudes@ Friday, January 30, 2004 12:00 PM

I find that Frans's very direct approach is one of the few things on these blogs that will really start up dialog.

I love stored procedures and yet I really appreciated everything that came out of that (nearly flame war) discussion about SPs and dynamic SQL.

I'm sure that everyone who followed those threads learned something.

ps Frans , I don't think your english is bad at all.

AndrewSeven

# re: Hostile attitudes@ Friday, January 30, 2004 2:06 PM

Frans, your blog is on my a-list along with 25 others. I try to keep up with your blog entries.

On this thread or on Paul Wilsons, I saw a comment about lacking professional courtesy, and I have to say that I agree to some degree.

I think you present your arguments strongly and clearly, and I seldom disagree with the content (I can't remember if I have ever disagreed). Recently I posted a "sideways opinion" about support for current .NET coding, because I actually agree with you - that too much emphasis is being placed on future technologies. But I disagree that MS is doing little about helping us to use today's technologies. Less than they need to do? Perhaps. Nothing? Far from it.

At any rate, you gave the example above that if you say "You're wrong." you could be perceived as hostile. A suggestion that I was given many years ago about the way to provide criticism constructively is to precede your comments with "I think". So, "I think you're wrong" is different from "You're wrong." You could say that when you are writing from your own perspective, the "I think" is implied, but that is probably only in your own head. If you actually say or write it, it leaves the reader with room to decide for themselves that they agree or disagree with you.

Someone else said there is little room for others opinions when you establish a position. I think your readers will feel more comfortable with your comments if you start them with "I think".

(Repeat the previous sentence to yourself, omitting the first "I think" and see for yourself.)

Mike

Mike

# re: Hostile attitudes@ Friday, January 30, 2004 2:23 PM

Good suggestion, Mike. Thanks :)

Frans Bouma

# re: Hostile attitudes@ Friday, January 30, 2004 4:06 PM

1-2-3-4, I delcare a blog war! ;)

Funny, I always thought Thomas was from England; An assumption I made based on the contact info for the company hosting EntityBroker.

I never picked up on a hostile tone in the comments you left in Paul Wilsons blog, although it did seem like you were picking on him. Every time he made a post, you were right there tearing it apart. I thought you were using a "I've been there, here's what I've learned" tone though.

I picked up some advice from posting on the BBS's a long, long time ago. Always post your messages with the same language and tone that you would want used if someone were talking to you in person. Would you want someone to tell you to your face "You're arrogant and wrong, here's why you're an idiot."? You can also think of it like this: Pick your words as if you were saying them to yourself in person. I'm about 6'4" and built like an ex-NFL lineman so I pick my words VERY CAREFULLY. ;) I wouldn't want to be rude to me in person. (btw I started typing this comment at about 9:30AM Pacific Time I think and I'm just now submitting it at 1:05 PST. I wanted to make sure I chose my words right.)

A rule of thumb that works well for all forms of electronic communication is to always wait and re-read your message a few times before hitting "send" or "Submit". If you're angry, save the message aside and re-read it later when you aren't angry anymore. You'll probably want to edit it some. (I'm not saying that Frans doesn't put a lot of into his posts or posts when he's angry. Just a general comment)

Scott

# re: Hostile attitudes@ Friday, January 30, 2004 4:15 PM

::Funny, I always thought Thomas was from
::England

German. As german as a german can be.

::An assumption I made based on the contact
::info for the company hosting EntityBroker.

Europe: you select the legislation for your company not based on what country you live in :-)

Thomas Tomiczek

# re: Hostile attitudes@ Friday, January 30, 2004 6:44 PM

THis thread shows that although we live in a global village, there are still cultural differences between us!

Here in England, we pussy-foot around each other with politeness, over on the Continent, people tend to be more direct and frank with each other. In the US, for people who regard free speech so highly, people can be surprisly sensitive at times. Generalising of course, but more often than not, it holds true.

Added to that, I would suggest that some people might mistake passion, for something else. Both Frans and Thomas are passionate about O/R, and leap into discussions about OR quite quickly and readily. Maybe this is what has ruffles some feathers.

It shouldn't though, after all most New Yorkers tend to be more "in-your-face" and forthright than someone from the Mid-West...but that doesn't usually stop people from either place communicating effectively with each other.

I guess what I am saying is, knowing the background and context that people have, can help one to better understand what it is they are trying to say...not how they are saying it!!


Ps. I own both LLBLGenPro, as well as a subscription to Paul Wilson's website (love those MasterPages!), so you can call me neutral on this one!

John Butler

# re: Hostile attitudes@ Friday, January 30, 2004 7:21 PM

I just asked my girlfriend to read this because I was fascinated to know how it would come across to someone who's never had any kind of contact with you before.

You might be interested to know that she thought your (Frans) response to Gavin's first comment was extremely hostile...

(Incidentally, she worked for a long time for an internet community which was English language based but which had sizeable Dutch and German communities. She says that most of these people didn't come across as hostile, even in very heated discussions. So evidently it's not something she feels about all Dutch people.)

As for me, I'm not so sure it has that much to do with language, but I'd like to test something. You gave the example of "You're wrong". Now in English, there's a *world* of difference between that and "I think you are wrong." Does this distinction not exist in Dutch? It would surprise me a great deal if that were the case, because to me this doesn't come across as a simple case of nuance of language. It actually has a very clearly different *meaning*, and that's the main reason that "You're wrong" can be very offensive when "I think you're wrong" typically isn't.

The distinction between the two is that by saying "I think you are wrong", you are dealing with opinion. By saying "You are wrong" you have left the realm of opinion and are accusing the person of being somehow at fault.

By using the phrase "I think you are wrong" the speaker leaves space for the fact that they respect your right to hold the opinion. But to say "You are wrong" does not. In English this is not a matter of nuance, it's simply that the two statements mean different things.

If this distinction doesn't exist in Dutch, then it might explain why you sometimes come across as hostile.

Of course if you genuinely feel that other people's opinions are worthless, then go right ahead - you're using the right language.

Ian Griffiths

# re: Hostile attitudes@ Saturday, January 31, 2004 5:23 AM

Ian: Gavin and I had a long 'war of words' in the past, I'm not surprised he's not that friendly towards me and I'm sure he's not surprised about my reactions towards him.

We have a different word for 'you' if you're not on first-name terms with that person you mean by 'you'. So we have 2 different sentences for "You're wrong". Of course we can say "I think you're wrong", however in the following situation no dutchman would say that:
person A: 1+1=3
person B: You're wrong.

I asked my wife about this, she's a writer and a language-geek ;), and she said that men more tend to say "You're wrong" (in dutch) than "I think you're wrong". To me, if someone says to me: "I think you're wrong", I think.. you don't know it for sure? :)

So, the rules for showing respect / politeness are different, at least that's how I see it, even between english speaking countries as it seems.

But a wise lesson for me has been: "Add 'I think'", even though I definitely know I'm right. (which is hard for me to do, but I'll try :)) and I have made a mistake in the "can you give me the book" example, I should have said "Could" :)

It's perhaps also a bit about how you look at things. If I read a book about programming for example, I don't expect "I think" sentences, I expect that the writer thinks he's right and that every sentence in that book contains truth. Is that different with an article I write here? I don't see that difference, but apparently (the sproc thingy with Rob showed that) other people think differently: a blog/article is more of a written down opinion and can't be seen as a chapter from a book.

Frans Bouma

# re: Hostile attitudes@ Saturday, January 31, 2004 7:52 AM

Frans
You are correct, if you are making a statement of fact, for example in a book, then saying "I think" would be incorrect but if you are correcting someone's statement then "I think" is the polite way of saying it regardless of how sure you are that you are right. It is also not polite to just say something is categorically wrong without providing evidence.

Person A : "1+1=3"
Person B : "I think you will find you are wrong, as surely 1+1=2 does it not ?"

You could read this and say Person B appears to doubt whether 1+1=2 but he is just being polite, even though Person B knows 100% that he is correct, saying only "You are wrong." is not only impolite it could be seen as arrogance.

Daren

# re: Hostile attitudes@ Saturday, January 31, 2004 12:34 PM

Frans I've encountered the exact same thing while working with a US/Canadian team. I think it's partly a cultural thing. Hence there's even a big difference between 'Brabanders' and the folks living across 'de rivieren'.

Paul Gielens

# re: .NET Reality check, my €0.02@ Sunday, February 01, 2004 6:39 AM

Couldn't agree more.
We've been struggling with various bugs/shortcomings in VS2003 (incl: WindowsFormsParkingWindow; disappearing user controls; corrupt Win Forms; lack of stability of fundamental controls like the Toolbar).
Unfortunately, at least some of these are *still* happening in Whidbey (with release probably Q1 2005).

I can't, and haven't ever been able to wait until the *next big thing* in order to fix current problems.
With the radical change in VS Longhorn pending, I really can't see MS doing much rework of existing Win32 issues in the Whidbey release.
They are aware of the issues though.

Simon Stewart

# .Text Screensaver@ Sunday, February 01, 2004 9:03 AM

TrackBack

# .Text Screensaver@ Sunday, February 01, 2004 9:04 AM

TrackBack

# .Text Screensaver@ Sunday, February 01, 2004 9:05 AM

TrackBack

# SideBar@ Sunday, February 01, 2004 9:00 PM

TrackBack

# SideBar@ Sunday, February 01, 2004 9:00 PM

TrackBack

# re: Hostile attitudes@ Monday, February 02, 2004 7:12 PM

Leave it to Frans to stir up the pot ! In my opinion people like to have things said with more sugar coating than either the Dutch or the Germans typically do.

Thomas

# re: (Dutch) Tot over een uur op de DotNed meeting!@ Tuesday, February 03, 2004 12:27 AM

Heey

Ik verveel me zo.
Ik ken jou verstaan- yay- nederlandse is zo cool!

Moet je dat zien! Dit is zo cool-

Ik ken jou verstaan niet. err- Ik ben tom, yay-

Hoe gaat is het? Wie bent u? Wie ben Ik dat Ik doen mag?
Ja, Ik ben vaag, zo vaag- Ik ken niet nedrlandse spreken.

Groetjes

Thom Van Der

# re: Serious ASP.NET Editor flaw lives on in VS.NET 2003@ Tuesday, February 03, 2004 6:35 AM

Having Used Dreamweaver to create asp.net pages before using vs.net I was appalled at how difficult it was to do the most simple of things, i was ending up designing the page in dreamweaver and then adding the code behind afterwards (vs.net didn't like this either but it did help a bit) I really do hope they can sort this problem out for the next version and the manipulation of tables (quite a simple task but very irritating). Maybe some better css integration as well (we can but dream!!!)

caveman_dick

# re: Serious ASP.NET Editor flaw lives on in VS.NET 2003@ Tuesday, February 03, 2004 6:42 AM

The next version (whidbey) is really nice, they definitely are doing a great job fixing all the poop they sold us and are selling us even today.

But that's the future of course, it's not helping us today.

Caveman: you can select dreamweaver as the default html editor in vs.net. I have done that with homesite. Of course you have to manually tie controls to event handlers and have to declare them by hand in the code behind, but for the rest it's pretty seamless.

Frans Bouma

# re: Stored procedures are bad, m'kay?@ Wednesday, February 04, 2004 2:36 PM

Bump::

Anyone have anything to say to this?

http://www.flws.com.au/showusyourcode/codeLib/code/sprocAnatomy.asp?catID=3

DJ

# They rule@ Thursday, February 05, 2004 12:00 AM

If you do not use stored procedures in my company. You will be fired immediately. I do not want sloppy code, but I want professional code.

Be professional or be unemployed.

David B

# re: Hostile attitudes@ Thursday, February 05, 2004 3:27 AM

Frans I have been following all your recent posts and your posts to other peoples sites recently. They are always interesting and usually enlightening. But with my Fragile Ego I hesitate before posting a comment on the topic of O/R mapping because I will probably be discredited instantly.

I am convinced that 99% of the time you are right, since it is obvious you have already forgotten more about O/R Mapping than most people will ever know (in case you don't know this is a New Zealand style compliment). I believe the key point is this: even if you are right 100% of the time, whenever you disagree you are hurting someones ego 100% of the time too!

As an experienced and I think skilled programmer/architect I have this exact problem everyday with my large programming team, I can try the 'You're wrong' approach all day long and get nowhere, but once I start leading the discussion with 'Have you thought about...' or 'Interesting idea how do you handle...' I immediately get better results.

People don't learn until they are ready, you can't force someone to agree with you. If by sharing your opinions you are aiming to share your knowledge (which I think you are) then 'I think' your aim should be to convince not to tell.

So I suggest you try to teach by directing attention to what is not understood, without saying what is not understand.

This creates an opportunity for win/win, i.e. your reader can feel smart when they see the what you want them to see, because they understood it all by themselves, and you can feel smart because you got someone to see your point of view without hurting someones feelings.

What do you think?

Alex James

# re: Hostile attitudes@ Thursday, February 05, 2004 3:34 AM

Good points, Alex!

I'd like to add though that the 'You're wrong' approach does work in The Netherlands, because we're use to that kind of speak. (I'm generalizing of course, but most of the time, it's not going to result in angry faces).

Frans Bouma

# re: A plea for full multiple inheritance support in .NET@ Thursday, February 05, 2004 4:42 PM

Perhaps we could get AOP support in .NET instead?
http://www.jnsk.se/weblog/posts/aop.htm

Jimmy Nilsson

# Microsoft support? Where?@ Friday, February 06, 2004 6:33 AM

TrackBack

# Quality of MS developer support@ Friday, February 06, 2004 7:58 AM

Alex Lowe asks <a href="http://weblogs.asp.net/alowe/archive/2004/02/06/68735.aspx">what Microsoft could do to improve their developer support</a>.

In general I think they do a reasonable job given the huge surface area of APIs and products that need support, I think some of the MS staff blogs are helping too. But they could do more...

TrackBack

# Microsoft Support, Round 2!@ Friday, February 06, 2004 9:11 AM

TrackBack

# .NET support@ Friday, February 06, 2004 10:49 AM

TrackBack

# .NET support@ Friday, February 06, 2004 10:49 AM

TrackBack

# .NET support@ Friday, February 06, 2004 10:49 AM

TrackBack

# re: Microsoft support? Where?@ Friday, February 06, 2004 12:45 PM

Frans,

I understand your feelings on this subject. I do not disagree with what you say. However, I do believe that there is a positive side to MS developer support. http://weblogs.asp.net/wallym/archive/2004/02/06/68788.aspx

Wally

Wallym

# re: Microsoft support? Where?@ Friday, February 06, 2004 12:48 PM

Frans, I think you are a great customer for Microsoft because in reading your blog I see that you only talk about the negative things you see in Microsoft and that is a good thing because it forces us to look at them.

I disagree with on a number of points and I see that you have twisted my words a bit but the point this excercise is to listen to you, the customer - not defend Microsoft.

I look forward to other comments along these lines.

Alex Lowe

# re: Microsoft support? Where?@ Friday, February 06, 2004 1:01 PM

Alex, I want to write on positive things about Microsoft as well, and you have to understand I was a pro-microsoft advocate for years, but the fact that I'm not anymore does tell me a lot. I'm seriously dissapointed in Microsoft's support, because I don't have the feeling I get support at all.

The captain obvious examples are not meant for me, that's fine by me, but what I'd like to know is why aren't there any patches for all the problems I've ran into the last couple of years (and I've reported a lot of them, so I know MS knows about them)? Could you answer that question for me, please, Alex?

You only focussed on the side of support MS is good in: giving a lot of good documentation and some useful examples. However support is more than that, far more than that.

Now I have the feeling that as soon as I have bought the product and have waded through the examples, I'm out of luck. If I run into a bug, sorry mate, but you have to wait till Whidbey before it's fixed... why?

I hope you can understand why I find it a little 'out of sync with reality' if you say 'Microsoft has the best developer support in the industry'.

Wally, I really don't understand why Microsoft didn't document the bug better, put up a patched DLL on a webpage for the few who run into the bug.

You see: 10 to 1 you find an answer faster in google groups than by searching the KB. Why? Google is thus more helpful than support.microsoft.com. I don't know but I don't call that customer support of a quality that can claim 'best of the industry'. Not by far. If Microsoft isn't doing something about it, Google will be THE support resource for MS developers, and I don't know of any developer who thinks otherwise at the moment.

Frans Bouma

# Advice@ Friday, February 06, 2004 1:11 PM

I have always developed believing that both Stored Procedures and D-SQL had its place, but recently I decided to see what the opinions of the masses were. Asking some DBA peers of mine, there opinion was to use SP over D-SQL in all cases, but not a single one of them could give a clear example why. In reading this blog I found that it seems everyone has an opinion one way or the other but there wasn't any clear-cut reasoning that would change my previous mindset. I feel SP's are necessary when doing transactions that require changing a large amount of tables or if changes/results are dependant on other changes/results etc. But I could not find a good reason for why all accesses should be made using SP. If their really was a performance increase, then I would have a good reason for using SP on all my transactions, even down to the most basic ones that occur. So I setup a small, quick and dirty benchmark for myself. I considered a drop down field that listed the contents of 1 column from a table. Very simple, and very easy to setup. I made a windows form in C# that consisted of 2 combo boxes a button and two label fields. When the button is pressed I set it to open a SP loop through the results and save the amount of milliseconds it takes to fill one of the combo boxes. I did the same using a straight SQL Query. Here are my results:

SPROC: 328ms SQL: 15ms

Granted the first time, it ran the SP had to compile, I went on to try it again obtaining the following results:

SPROC: 67ms SQL: 1ms
SPROC: 16ms SQL: 0ms
SPROC: 43ms SQL: 0ms
SPROC: 48ms SQL: 3ms

Possibly this is not a good benchmark, or possibly, just possibly, a lot of DBA's are too consumed by what they think is right, they don’t bother to use all of the tools available to them. Sure SP's have their place in SQL Server, but so do Views, and triggers, and Relation Diagrams, and Jobs and Functions etc. etc. If I was to setup a benchmark where multiple tables were updated or accessed, I am sure the SP would benchmark better then the straight SQL, but that is not the point I was trying to make here. I cannot think of a single application that ever existed or that will ever exist that will not have a bunch of basic queries like the one I described above. Lets stop arguing the points besides what is better and give some good advice to people that are trying to properly setup there databases. Use SP’s when you need to, and use Dynamic SQL when you need to, don’t get stuck on just one technology when multiple technologies are offered. If you have a good solid application, there should only be 1 single object you would need to change, given any DB change, and if that class is setup properly, it should validate itself anyway, so you can change the DB to your little hearts content and still have a working application. On the other hand if you make a table change that would affect a SP, you should set a Default Value so that the SP doesn’t break.

Please feel free to tear apart this post as much as you would like, but all I would like to see is 1 single good reason not to use both SP and regular SQL queries. More to Manage? Not if you are a good developer.

Jason Bigstone

# re: Microsoft support? Where?@ Friday, February 06, 2004 1:18 PM

lol we have to reboot every 49.7 days due to a bug ms left in NT4... Switch to 2000, 2003, Longhorn? Ever tried to convince a customer? It's isn’t all sunshine in the promised land, but you need to move in the frontline to encounter the flipside of ms technology. The continuous forward movement is great for developers but customers really don’t care, fixing things right away and not in upcoming products which on their behalf bring along new bugs. Frans is so totally right.

Paul Gielens

# re: Microsoft support? Where?@ Friday, February 06, 2004 1:19 PM

Amen brudda

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

Scott

# re: Microsoft support? Where?@ Friday, February 06, 2004 1:44 PM

I don't expect perfection, only that some realistic level of service is provided.

For example, I found an actual bug in the framework (one of the RewritePath() overloads) and had a nice exchange started via the online support ticket system, finished by a member of the .NET team. It's one of three times I've had to contact MS directly, and every time my problem was resolved or at the very least explained. At the company level, I think they do a fine job.

The community and third party is top-notch as well, in part I suspect because people who really get and use MS development products are smarter people. Seriously, I really think that.

It's helpful to harshly criticize the things you like the most, but I think in this case that "sucks" is far too strong of a word.

jeff

# re: Microsoft support? Where?@ Friday, February 06, 2004 1:58 PM

Microsoft could learn a thing or to from their competitors about providing useful access to bugs:

http://developer.java.sun.com/developer/bugParade/index.jshtml

http://bugzilla.mozilla.org/enter_bug.cgi?format=guided

That's only two of them, but many more provide direct, excellent access to their bug databases. Some like those above require *free* registration.

You have truly excellent access to report, lookup, and comment on bugs. In some cases these systems even allow you to vote on bugs that frustrate you the most. In every which way, I've had better success finding a bug in these databases then on support.microsoft.com or the newsgroups.

If some of the bugs are fixed, some aren't -- that's okay. Atleast in those developer community friendly databases, you can find the bug, discuss workarounds, or see that hey maybe its not a bug, but "feature". They foster both community and productivity. At the end of the day we need to make our software work.

What amazes me is that Microsoft talks about community and support when they lack in some of the most basic areas such as a usable bug database which their competitors have had since '96 or '97!

And yes, google ends up being my savior on the .NET platform. Google does a better job searching msdn, support.microsoft.com, the newsgroups, etc than Microsoft's own resources.

James Arendt

# Tables are bad m'kay@ Friday, February 06, 2004 2:20 PM

I strongly believe that tables are useless to database development. Here is why:

1. Tables get big and make your database big.
2. Tables have nothing to do with what a database is for, a database is a base for data.
3. If you do not use tables at all, then you do not need to worry about dynamic SQL or stored procedures.
4. Whats is a table? a bunch of Data, data should be kept in the database.
5. With tables you have to burdon yourself with the Normal forms.
6. No more huge relational diagrams tiing tables together, because there arent any to tie together.
7. Reduces the need to write cleanup/archive packages because there are no tables to cleanup/archive.

Why limit ourselves to not using stored procedures, lets just limit ourselves to not use tables, and it solves all of our database problem. See everyone, sometimes the simplest solution solves everyones problems. Now lets all hold hands and sing kumbaya.

[And most of all........F!?k you!]

Sheri Moon

# re: VB Developers should learn to take criticism@ Friday, February 06, 2004 3:11 PM

julie lerman
Posted @ 11/4/2003 2:35 PM
Frans - I am not here to debate. I just wanted to point out that I was NOT saying anything about the language. Just about people saying vb programmers are idiots. That's quite different. I have never said anything about the merits (or lack thereof!!) of VB as a language.
\\\
\\\
so i take it that vb is not a bad lang but the people who use are retards?

btw i still use basic a
it's by far better than all your fancy net crap.

i like basic a

# re: Microsoft Support, Round 2!@ Friday, February 06, 2004 3:19 PM

You wouldn't happen to know the KB article number, would you? :)

I do realize that other people have had different experiences, but keep in mind that I best know my own view only. What you read in forums, newsgroups and blogs can frequently snowball into something much more sinister than it actually is.

jeff

# re: Microsoft Support, Round 2!@ Friday, February 06, 2004 3:22 PM

I think it is this one:
http://support.microsoft.com/default.aspx?scid=kb;en-us;821758
(I searched on RewritePath, found 2 articles, one the bugreport, the other the fix)

Perhaps your bug is a different one, then that bug is thus never fixed publicly :)

Frans Bouma

# re: Microsoft Support, Round 2!@ Friday, February 06, 2004 3:28 PM

More great feedback.

You must mean the PDC (to which you are very correct in the future theme of that event) in your second to last paragraph because DevDays hasn't happened yet (starts in March) and 5 out of 6 sessions are focused on today:

http://msdn.microsoft.com/events/devdays/agenda

Alex Lowe

# re: Microsoft Support, Round 2!@ Friday, February 06, 2004 3:32 PM

I have to say, you make a good point.

I'm a big big fan of dotnet, and I prefer it over the other options out there. The MSDN site is a fantastic resource, and whenever I have to code in anther language beggining with a J, I really miss that one source of information. BUT... I use google to find solutions to everything - I don't think I've ever found a solution on MSDN unless I've been pointed to it from google groups. The current hype over the next generation whidbey etc really has gone insane... No service packs to fix the simple bugs is just rude. I get the feeling MS have made some high level decisions about this, and decided that the only way to open up a gap on the opposition is to do the least maintenance on current versions so they can devote all resource too the next generation systems. Unfortunately, by the time they get there, the majority of major investment banks and high profile clients will be happily entrenched in the world of J. Maybe they should just hire some more coders... I'm sure there must be some spare cash under Bill's bed :)

inoodle

# re: Microsoft Support, Round 2!@ Friday, February 06, 2004 3:32 PM

Alex: devdays 2004 are already over in The Netherlands, Europe (they were in January). :) That's why I referred to them :) (but perhaps these devdays are a bit more 'marketish' then the USA versions)

Frans Bouma

# re: Microsoft Support, Round 2!@ Friday, February 06, 2004 4:04 PM

Alex is right on. The main four sessions for both the smartclient and web tracks at the US DevDays are geared toward security/deployment/best practices for current technology. There will be some future bits, but that's not the emphasis for the core part of the event which is why I'm quite excited to be presenting at it. (shameless plug, I know).

Back to the topic...

Frans: "Apparently Microsoft is very afraid of what we, customers, might get to know about the real quality of their software if the full bug database is exposed."

They shouldn't be afraid. Their competitors aren't. Most developers realize software and APIs of the complexity of these development platforms are bound to have flaws -- thousands if not millions of them. But, that's no reason to leave your developers feeling and being powerless about them.

James Arendt

# re: Microsoft Support, Round 2!@ Friday, February 06, 2004 4:32 PM

About all the example code you are referring to, back in the VB/ASP/any other language, we had NOTHING like asp.net or gotdotnet. Everything you wanted you had to pay for. My only good resource at the time was planetsourcecode for free examples, code included.

Although I always was very pro Microsoft, since the .NET reality check article and these two about support, I can do nothing but realize this is totally true. I haven't had real bugs yet that I couldn't find quite soon enough on asp.net forums or google, but it definitly sucks bigtime that (A) I can't find them on the KB and (B) I can't download them right away.

Dennis v/d Stelt

# re: Microsoft Support, Round 2!@ Friday, February 06, 2004 4:48 PM

How exactly do you request support (you need to go through support to get the Asp.Net patch) on a product they do not offer support for (the .Net framework)? Would anyone please let me know how to go about obtaining the fix?

Jerry Pisk

# re: Microsoft Support, Round 2!@ Friday, February 06, 2004 5:04 PM

Ah, I forgot (stupid American) that they kicked them off earlier in other areas.

That is very unfortunate if they were not about todays' technology. I was EXTREMELY HAPPY to find out that the three I am responsible for here in the United States are very focused on todays' technology.

Alex Lowe

# re: Microsoft Support, Round 2!@ Friday, February 06, 2004 5:05 PM

Jerry, when in doubt you can use one of the contact venues at http://support.microsoft.com/default.aspx?scid=fh;[LN];CNTACTMS

Alex Lowe

# re: Microsoft Support, Round 2!@ Friday, February 06, 2004 5:12 PM

Alex, I tried, but they don't list .Net framework as one of the products you can get support on. That was my question - how do I get support on something that's not supported? I guess most people will tell me to go through VS support but I can't exactly tell my customers to buy VS just so they can contact Microsoft to get a patch for an unrelated product and run my apps, now can I?

Jerry Pisk

# re: Microsoft Support, Round 2!@ Friday, February 06, 2004 5:17 PM

Jerry, what are you clicking on once you get to that page?

When I click here (http://support.microsoft.com/default.aspx?scid=sz;[ln];top) I get a drop down that contains ".NET Framework".

Alex Lowe

# re: Microsoft Support, Round 2!@ Friday, February 06, 2004 5:41 PM

Alex, for what I remember about the dutch Devdays program is that it was merely about next-gen tech, and therefore I decided not to go (although it was 500meters from my house ;)) THere were sessions about todays tech though if I remember right. I can't find the program back, though...

Frans Bouma

# re: Microsoft Support, Round 2!@ Friday, February 06, 2004 5:42 PM

I must say I agree.
When I submitted one of the bugs I found a while back (that Visual Studio.NET 2003's design time support is unable to render the "override" keyword for methods), I was answered with a "we know it's there, sucks to be you" kind of reply...

Omer van Kloeten

# re: Hostile attitudes@ Friday, February 06, 2004 5:48 PM

Hi, Frans: After reading your posts today about Microsoft support, it occurred to me that I can't recall ever having seen you express a positive opinion. Your writings tend to be negative and critical, which may contribute to your coming across as "hostile."

Phil Weber

# re: Hostile attitudes@ Friday, February 06, 2004 5:54 PM

Microsoft has a big marketing department for the positive side of things, Phil :)

I did write positive things though, however people tend to see a different POV as being negative. I don't see it that way, I just want to point out something. If that's then seen as something negative, that's too bad, but not a sign to me I shouldn't blog about it.

The blogs today (6-feb-2004) are negative towards microsoft, but that's embedded in the subject: it's critizism on Microsoft's behaviour. I don't see that as a bad thing, after all, if no-one talks about it, they will never know how bad their support really is.

Frans Bouma

# re: Microsoft Support, Round 2!@ Friday, February 06, 2004 6:01 PM

Frans,

While I don't agree with the sweeping statement about MS support, the bug list/database/fixes is one that I completely agree with. The June 2003 ASP.NET hotfix needs to be distributed. Having to call to get it is crazy.

Wally

Wallym

# re: Microsoft Support, Round 2!@ Friday, February 06, 2004 7:08 PM

About quality:
Microsoft brings out good tools to develop with. I think most of the industry agrees they have one of the nicer IDEs to work with and the overall product quality is very good.

But:
Microsoft does not, in an open way, provide access to hotfixes/patches. If I'm more realistic about the matter, I do see at my own company that customers pay an annual fee for support (another strategy is pay per incident). They (the customers) get hotfixes/patches for free(under the umbrella of the annual support contract). For new features, they have to pay.
Now, to get to the point: If MS were to set up a site where I could subscribe to a newsletter or rss feed which publishes new hotfixes/patches regularly, I could click on the hotfix I want, enter my credit card number, pay, and download it. That would be a heck of lot easier than having to call someone at support services. Ofcourse, maybe they make more money if I call support services.
Personally (I'm a developer) I don't expect to be paying for hotfixes/patches, certainly not for software coming from a company of this size. Charge me a couple of bucks more for VS.NET for all I care, but don't charge for fixes to your own software.

Number one area of improvement here is COMMUNICATION.

Closed source and long release cycles:
I have to hand it to MS, they are clever. I have not seen that many companies succeed at doing virtually no "developer support" (meaning the kind of support where a developer patches the code) for released products. Indeed, the feeling I get with MS, is one of "we'll have it fixed in our next big release". One exception to this rule lies in the area of security.
The fact that .NET's source is not freely available (admittedly it's already more open than it used to be(see COM era)), makes it hard to fix a bug in the framework (considering you'd want to do this in the first place).
Maybe the core of all my mumbojumbo is that the time between finding a bug and having a patch available for the community at large is too long.
Then again, for every patch you publish, the quality has to be assured, the documentation has to be updated, ... I mean, there is probably a whole process that kicks in. And soon it's not only the guy who solved the bug in the source who's involved, but the guys at the test lab, QA, documentation, support ...
I think this problem is probably inherent to any big company that wants to deliver quality sofware. This is an area where opensource projects have an advantage (then again, they don't have to worry about making a profit).

Ah well, a nice example of a neverending story ...

Yves Reynhout

# re: Microsoft Support, Round 2!@ Friday, February 06, 2004 7:31 PM

My fault, I was trying to submit an online support request for .Net Framework. Time to find the phone...

Jerry Pisk

# re: Hostile attitudes@ Friday, February 06, 2004 7:51 PM

I'm not talking about an isolated incident, I'm talking about a pattern: "That person is wrong"; "This product sucks"; "Microsoft's support is terrible." See the pattern?

You are, of course, free to blog anything you wish. But if you wonder why some people see you as "hostile," this may be why.

Phil Weber

# re: Microsoft Support, Round 2!@ Friday, February 06, 2004 8:07 PM

Ok I don't speak for MS in this message; this is just my personal opinion... and all the usual disclaimer.

I am sorry but when you say:

“However, are there any "hotfix rollup"s of winforms? Ado.net (I know the Oracle provider in .NET has some serious issues)? VS.NET designers? No.”

I don't think this is true. MS provides service rollup and they are service packs. While it make sense to talk about how often we ought to release such SP, and if we should do one for 1.1 quicker, it is just not true that we don't provide hotfix rollup to fix critical bugs with Windows Forms or the VS Designer (my area).

PSS is the first line of contact for issues and if you contact them and tell them about your issue we will look into it. If we have a hotfix available for it, even if the SP is not yet released, we will provide you it. If we don't have a hotfix and your issue doesn't have a good workaround, we will make a hotfix for you (that's how they get done usually).

When we code a hotfix there is a reason why we don't release it into the wild right away to everyone: they have not been tested enough and the process doesnt stop at coding. There is doc update, QA test suites update and and lots of other things. We do run our test suites and do our best to ensure the change didn’t break anything, but we don't go through a beta stage for every individual hotfix. I personally agree that whoever request it should get the hotfix though, at their own risk, and that the information on which hotfix are available and how to request them should be public and easy to follow. But a bug fix can introduce tricky regressions...

Don't misunderstand my post though. I am not trying to say "This Frans, he just doesn’t get it, blablabla". You're pointing a very valid issue, but I think some things deserve more details. Thanks for your feedback. It's helpful and always points at areas where we can definitely do better.

Julien.

Julien Ellie

# re: Microsoft Support, Round 2!@ Friday, February 06, 2004 9:48 PM

Yves,

Just so we are clear, the hotfixes that you have to call for rarely cost money (assuming you need a hotfix for something that is actually a bug). Microsoft is not trying to make money issuing hotfixes over the phone.

Alex

Alex Lowe

# re: Microsoft Support, Round 2!@ Saturday, February 07, 2004 3:58 AM

::PSS is the first line of contact for issues
::and if you contact them and tell them about
::your issue we will look into it

This is already what is wrong.

Why do I have to DISCOVER this stupid errors myself? I spend hours trying to figure out FIRST whether an issue is my code or a MS bug, then I spend hours trying to locate a KB article - rarely you get a sensefull hint at once - and THEN I have to get out and ask nicely as PSS.

This process is wrong.

The ASP.NET 1.1 hotfix rollup is from JULY 2003. by now someone should have rolled this into ASP.NET 1.1 SP 1.

Thomas Tomiczek

# re: Hostile attitudes@ Saturday, February 07, 2004 4:25 AM

Phil: What's wrong with telling the 'other side' of the story? If no-one does it, all we will hear is hail and praise about everything Microsoft.

If some people think critizism with arguments (I always enlist arguments) is negative and hostile, so be it. C'est la vie.

Frans Bouma

# re: Microsoft Support, Round 2!@ Saturday, February 07, 2004 4:48 AM

Jullien: I'm a developer, I don't see the advantage of calling someone, telling someone over the phone what my program error is while it can be done electronically much more efficient.

Besides that: the setup of this kind of support is totally wrong. As Thomas says, why do I have to spend hours of useless debugging? I mentioned a fix for CDSYS which IS tested (it's in win2k3!) and which is available for a long time. Yet I don't see a download link.

There are bugs in .NET 1.1. and there are bugs in VS.NET 2003. A lot of them are not documented. Every time a developer runs into them on this planet, he / she will spend useless time to figure out if he/she is wrong or .NET is wrong, then spending hours finding a fix on the internet and as a last resort calls Microsoft PSS. If MS is so kind creating a hotfix for the person, no-one will ever know about it. The next developer running into the same bug will go through the same process. And the next...

Do you see what the problem is? I hope so.

Also the argument about testing is IMHO a bit out of context. True, a fix should be tested, but how long does Microsoft spend testing these fixes? 6 months? Testing a fix can take perhaps a week, but that's it.

About the oracle bugs:
"I don't think this is true. MS provides service rollup and they are service packs. While it make sense to talk about how often we ought to release such SP, and if we should do one for 1.1 quicker, it is just not true that we don't provide hotfix rollup to fix critical bugs with Windows Forms or the VS Designer (my area). "
No they don't. I haven't seen a service pack for .NET 1.1, nor have I seen a service pack for VS.NET 2003. That's what's annoying me every day. By now I know the workarounds for some bugs so I can avoid them, but this is just plain silly.

You say you do provide hotfixes for critical bugs. I then would like to ask you why only critical bugs get hotfixes released to the public? And what's critical? A well known security flaw? Or a bug 50% of the developers runs into but will never open your systems to attackers?

Have you at Microsoft ever thought about the fact that support for Visual Studio.NET 2002 has already ended? Yes, people can upgrade to VS.NET 2003, but now for a lot of money. Just 1.5 years of 'shabby' support (no service pack, 1 (one) fix for vs.net. ONE, is publicly available).

I'd like to suggest you to look at how the SqlServer group does this. They still are fixing things in SqlServer 2000, the patches are documented in the KB and enlisted in f.e. sqlserver magazine newsletter. You can then or download them or ask PSS if you want to. In other words: you KNOW that something was wrong in SqlServer, if you experience the same behaviour, call PSS or download the patch.

I simply do not see why on earth support for VS.NET customers and .NET 1.1 users is so utterly crap. Yes, these are harsh words, but that's how I see it and have experienced it in the last 2 years. The tools are great, but when a bug appears, you simply are out of luck and have to spend hours and hours to find out what's wrong, in the end calling PSS, with the risk that it isn't a bug and you then have to pay.

No thank you, Microsoft. I supplied 12 bug reports if I recall correctly, in the last year and a half alone. I never heard back from Microsoft. I never received an email that a fix was done. Apparently fixes are only created when you call, with the risk to have to pay.

If I sound bitter, I am. This is THE one thing that annoyes me every day and every day more and more, because I definitely don't have even the slightest feeling Microsoft will change this at all. Why? Because I've written about this before, nothing has changed. I wrote in newsgroups read by MS employees why nothing was fixed. Silence. No-one ever mailed me back about the bugreports. Why? Some bugs are so obvious it hurts. No-one inside Microsoft has ever seen these bugs before too? No other developer on this planet has phoned PSS and got a fix?

Apparently Microsoft still thinks true support is done by phone and the internet is for other people. BIg Mistake (tm). Google alone gives more and better support to Microsoft customers than Microsoft itself, and that for years and if MS doesn't change, for years to come.

Frans Bouma

# re: Microsoft Support, Round 2!@ Saturday, February 07, 2004 5:20 AM

"Now, to get to the point: If MS were to set up a site where I could subscribe to a newsletter or rss feed which publishes new hotfixes/patches regularly, I could click on the hotfix I want, enter my credit card number, pay, and download it. That would be a heck of lot easier than having to call someone at support services. Ofcourse, maybe they make more money if I call support services. "
Erm, that's totally backwards :) If you buy a radio and at home it has a knob that's broken, you expect warranty, right? So when you go back to the store, you expect them to say "Oh, sorry, we'll fix that for free, its in the warranty". You don't expect them to say: "ah, a broken knob, sorry mate, but that will cost you".

Same with software. I don't expect Microsoft to supply me for free a consultant I can call 24/7 to fix my problems. I do expect from Microsoft that they supply me with fixes for defects in their products. That's warranty, and by law they have to fix my problems for free, at least for a period of time (1 year) in The Netherlands, and if the product is more expensive, even longer. Think about it: you buy a Dell server WITH win2k3 server on it. When something is not right with the dell server, you expect the warranty you got from Dell is sufficient enough to get things fixed (and they do.) When something is wrong with the software running on the server, you suddenly have to pay for a fix? While the software is more expensive than the server? I don't see that :)

Frans Bouma

# re: Hostile attitudes@ Saturday, February 07, 2004 6:44 AM

"What's wrong with telling the 'other side' of the story?"
Frans,
If you were to read a blog that constantly said things like "Product A is great", " Company B is amazing", "Bob knows his stuff". blah blah blah , then after a time you'd begin to wonder if the writer was perhaps being paid to say these things and if they then said "I think you should go out buy Product Z" would you trust their opinion ?
The same applies for constant negative posts (i'm not suggesting you do, i read too many blogs to remember) now you add to this whole situation the fact that you and the other key names mentioned are all pushing a product and you have a recipe for debate to turn hostile.
Also on the subject of cultural differences , you will find that criticizing your competition is common in US , but frowned upon in the UK. It is always better to point out whats good in your own product than whats bad in your competitors.

Daren

# re: Hostile attitudes@ Saturday, February 07, 2004 6:58 AM

Daren, I see your point but let me elaborate a bit :)

I'm not implying that being solely positive or solely negative is good 'as is'. You always have to produce arguments which are the foundation of the opinion ventilated, at least that's my opinion. If someone brags about a product as being fantastic because a WriteLine() method writes a line, I think the person is not worth listening to. If a person gripes on and on about a product just because he doesn't like the color of a button, I draw the same conclusion.

If both persons come with good arguments, I'm all ears.

However I fail to see why a person with positive things to say with arguments is worth listening to and a person with negative things to say, with arguments, is not worth listening to. I think both persons deserve to be listened to, after all, both have arguments.

Example: the SP debate. I wrote a long article about the crappyness of the SP concept. In the same article I sad positive things about dynamic sql. However people only see the negative things I said about SP's. Am I then wrong? I don't think so.

I understand the issue with criticizing the competitor without good arguments, I too believe it's better to point out good things in your own product. (That's why I don't understand Linux advocates crying foul about MS software. If Linux is so good, tell me what's so good about it). However in a lot of area's I'm not a competitor of MS, I'm a silly customer. And as a customer, believe it or not, I have all right to complain if what I bought was not of the quality I thought it was :).

I'm also not blogging here just because, I want to tell people something. I know that to be heard you have to have an appealing story. What's appealing is debatable though, however stories which are more raw and not full of 'suck-up texts' are often better understood than the ones where you have to read between the lines to find the real story.

Frans Bouma

# re: Hostile attitudes@ Saturday, February 07, 2004 6:58 AM

hehe 'sad' has to be 'said' of course ;)

Frans Bouma

# re: Microsoft Support, Round 2!@ Saturday, February 07, 2004 9:23 AM

I have a bug in the .NET global memory performance counters that I can't find documented anywhere, and I can't find any way to report it without calling someone on the phone. Maybe I'm not the first and there is a hotfix, but why would it not be public -- I'll be calling next week I guess. I'm also looking at something else that appears to be a bug -- and if it is then it is HUGE. But its a shame if they already know about it internally, maybe even with a hotfix, but simply didn't make it public. And there are several bugs that are well-known in ASP.NET that aren't listed in any bug list that is public, so you have to tell people its a known bug frequently in the forums.

Paul Wilson

# re: Microsoft Support, Round 3, the flaw of the Hotfix@ Saturday, February 07, 2004 10:35 AM

This is a problem. I agree with it completely.

Wally

Wallym

# re: Microsoft Support, Round 2!@ Saturday, February 07, 2004 10:51 AM

I checked that link, and actually the bug I had is NOT fixed. My bug involved using RewritePath and throwing 404's when Trace was enabled at the app level (from web.config) and the number of requests specified in the trace element had been exceeded, while a query string was specified in with the path for the rewrite. It was "fixed" by using the overload of RewritePath that had its own place for query strings as another parameter. Weird bug, I know, but not fixed.

Jeff

# re: Microsoft Support, Round 3, the flaw of the Hotfix@ Saturday, February 07, 2004 11:58 AM

Lets not even discuss all the time wasted finding out that you need a hotfix because it's not listed anywhere that's searchable at MSDN.

Scott

# re: Microsoft Support, Round 3, the flaw of the Hotfix@ Saturday, February 07, 2004 6:25 PM

I think you can distribute the hotfix with your tool but not by default, you should ask them (ms) first to provide you the rights/license to let you distribute it.

Krisztian Gyuris

# Setting the record straight on MVP newsgroups@ Sunday, February 08, 2004 4:45 AM

TrackBack

# re: Microsoft Support, Round 3, the flaw of the Hotfix@ Sunday, February 08, 2004 9:05 AM

I was told that no, the customer has to call ms. All I was allowed was to give them instructions (i.e. say you need he hotfix for this and that bug, and call this and that number etc.).

Thomas Tomiczek

# re: Microsoft Support, Round 2!@ Sunday, February 08, 2004 1:32 PM

1. Hotfixes are FREE. You don't pay for them.

You call you press option 4 if I remember right, you tell the person what hotfix # you need, you get them.

2. Yes I want a "all KB articles published this month page. KBalertz.com helps, but it's not enough.

3. Why do we have to call for hotfixes anyway? Give me a page and send me through passport and give them to me.

Yes the issue of hotfixes needs fixing.

S Bradley

# Setting the record straight on MVP newsgroups@ Sunday, February 08, 2004 8:31 PM

TrackBack

# re: Stored procedures are bad, m'kay?@ Monday, February 09, 2004 9:18 PM

Here here Sheri Moon,

It seems all these threads boil down to one thing, performace, well I cant see a real problem between 1,2 or 10 rounds trips more traffic data or few more bytes ram used when we are moving into the era where everyone househole will have T1 or more connection sooner or later, home computers tripple its speed everyone 3 months or so, servers can take even more CPU's like there's no tomorrownot to mention the RAM.
By the time this argument is resolved, what you have learnt would become obsolete and its time to takew up a new language.

webbygeeza

# re: Why Edit & Continue is a bad thing@ Tuesday, February 10, 2004 4:14 PM

Hey George, you missed one little thing: Edit & Continue IS ALSO PRESENT IN VISUAL C++. While you are debugging, you can modify code, then press ALT+F10 to compile in a flash, then you continue debugging.

In my opinion, E&C is just an extension of the facilities of the debugger. If you shouldn't modify the code while you are debugging, you also shouldn't change the current executing statement, or the values of variables, to mention just a couple of cases that you CAN do with C#. If we take this reasoning to its extreme, then we should not debug at all: if the program crashes, we should just sit down and scratch our brains to figure out where the error is without incurring in the heresy of running it step by step... shouldn't we?

It's a matter of programmer judgement up to what point the E&C feature is used. It is great for those cases where you mistyped a ">" for a "<". That is a stupid error that do not merit that you stop the program, mostly if it has taken you a long time to get there.

Mostly, if VB.NET is going to have E&C and C# is not, this will certainly give the VB fans and argument against C# which is IMHO a superior language.

In a nutshell: E&C won't make a bad programmer out of a good one, but will save lots of time to everybody. Let each one decide instead of forcing everybody not to use it.

Marco

Marco A. Perez

# re: Why Edit & Continue is a bad thing@ Tuesday, February 10, 2004 4:19 PM

You completely missed my argument what debugging is all about. You can jump up and down all day long that E&C is a great thing, but in the end it will blind you for teh real issues about debugging. People who think for 20 seconds, then start debugging can outperform any 'E&C' using person in any occasion.

The only argument I see recurring is that it helps you fix silly typo's. oh, well, I can fix them when I stop the debugger as well and then I know they're corrected. If you do not know if they bug is then fixed, you are using trial and error, and proving my points.

Frans Bouma

# re: Stored Procedures vs. Dynamic Queries.@ Thursday, February 12, 2004 10:06 AM

1) create 6 stored procedures (which are fast)
2) create 1 stored procedure with optional parameters (which is slow(er)
3) create dynamic queries with parameters (thus in the end 6 of them).

What about Creating One View indexed correctly and one SP.
If you are not using indexed Views you are missing out one of the greatest features of SQL 2000.
One that is improved in Yukon.

james@BestWebTechs.net

# Many problems with Stored Procs...@ Thursday, February 12, 2004 11:15 AM

... can be avoided if you don't write them on the server, as text in a text editor. Instead, you write code to create them as part of the (administrator code in the) app, generating the SP code on the fly with knowledge of the database schema. If someone decides to change the width of a column, or add a new column, or remove a column, the stored proc is re-built.

I didn't read the entire blog, or the blogs people referenced, but I didn't see this idea. You can get a lot of the advantages of both approaches by using the same tools that build dynamic SQL to build the SQL in your stored procs.

James Merrill

# re: VB Developers should learn to take criticism@ Thursday, February 12, 2004 2:24 PM

I rarely meet any programmer who praises another's code unconditionally. VB programmers are no exception. BON, I come from RPG, well-known as IBM's language for idiots. Guess what, there's another .Net language that is a marriage of RPG with VB.Net. It's called AVR.Net and, because it is so easy to use and so productive with such easy data-access to multiple databases, we AVR.Net programmers expect to be called idiots any day now. --- I can do idiotic things but ASNA's AVR.Net makes me a genius.

Jim Jennings

# re: Microsoft Support, Round 2!@ Friday, February 13, 2004 3:15 PM

First I suggest we get an online bugs db, that lets me submit bugs and let me follow their status and stuff like that.
Then I suggest a very small modification on the msdn site, let people add comments on all the pages...
I know we can already submit some feedback on each topic but we cannot see what others wrote.
Even if I can see some reasons for that. Others sites are doing it, for exemple:
http://www.php.net/manual/en/function.array-diff.php
the help for the array_diff function in PHP... perfect, don't you find ?
Another solution could be like for borland... I've done delphi programming for years... And even in delphi 7 you can find bugs that are there since delphi 1, héhé, it still makes me laught nervously from time to time... but, they provide you the source code of most of the vcl, their component library... It's not a perfect solution, but that helps to be able to do it yourself... even if some bugs may be out of my sight, I think someone else will be able to come out with a fix.
Also, to be able to easily release your own fixes, we would need a linker for the .net world, so I could release my own program without dependances to anything else... Just a single exe...
Also, I would like to be able to provide all the fixes required by my application on my product CD... why ? because, I do not see them download everything by themselves, it's getting quite complicated to patch an xp box nowadays...

Jonx

# re: Serious ASP.NET Editor flaw lives on in VS.NET 2003@ Friday, February 13, 2004 5:20 PM

After waiting nearly two years to jump to the .NET boat, and only three days of actual coding time, I'm thoroughly disgusted with VS.NET. How the heck am I supposed to master code-behind if code-in-front can't even stay together? It can't keep 50 lines of simple HTML in order. I've used InterDev for years for classic ASP (without using the DTCs because they're broken). I looked forward to VS.NET because all the design-time controls were supposed to work. Finally. Well. Hmmm. I'm about ready to quit .NET, too...it's bad enough that I have 30,000 lines of ASP code to move over; I don't need to fight the IDE too.

Tim

# re: Move away from stored procedures or not?@ Monday, February 16, 2004 11:14 PM

what about performance?, as I understand, SPs are compiled once, while views are compiled everytime its runs, is this right?

JR

# re: Stored procedures are bad, m'kay?@ Tuesday, February 17, 2004 7:55 AM

lol

me

# re: Optional Parameters in SQL Stored Procedures@ Wednesday, February 18, 2004 12:15 AM

TrackBack

# re: Optional Parameters in SQL Stored Procedures@ Wednesday, February 18, 2004 12:15 AM

TrackBack

# re: Jimmy Nilsson on AOP@ Wednesday, February 18, 2004 10:30 AM

Interesting read. I've read quite a bit about AOP in the past but I never read Jimmy Nilsson's blog. The "I want my AOP article" is dead-on regarding cross-cutting concerns and the use of AOP as a streamlined solution for netting out all of the "plumbing" you must do for a project into a series of attributes you can decorate your class/class methods with.

-Mathew Nolton

Mathew Nolton

# I think that someone should bite me@ Thursday, February 19, 2004 10:54 AM

Okay, here's the thing. VB does not, even now with OO constrictions, breed structured coding among developers. You need to be disciplined to still produced well structured and organised code. On the other hand, I have seen C and C++ code that is structured, but is as tearse as hell! So where do you draw the line. It isn't cool any more to write code that noone else understands, but it isn't cool either to write code that's messy or unstructured. You're not some black art guru... you're a programmer. Why make things more cryptic than they need to be. I hear guys going on about streamlining methods and making them more efficient..... but will someone else be able to tell how that method works by looking at the source code - sometimes code comments don't cut it when it comes to comprehending what's going on with code. I've programmed in 68000 Assembler, C, C++ and VB/VB.Net VB does have it's drawbacks, but it's still a useful language - there are ofcourse some things that I just wouldn't use it for though.

Edward Griffin

# re: Serious ASP.NET Editor flaw lives on in VS.NET 2003@ Thursday, February 19, 2004 10:54 PM

Here is something odd to check out. I wrote the following line in html and switched to design without saving, then switched back to html.
<a href='javascript:windowHandle = window.open("http://www.yahoo.com","_blank","width=400,height=400,resizable=yes,toolbar=yes,menubar=yes,location=no,scrollbars=yes"">http://www.yahoo.com","_blank","width=400,height=400,resizable=yes,toolbar=yes,menubar=yes,location=no,scrollbars=yes");windowHandle.focus();'><u>View Map</u></a>

If you hit save before switching views or use the following line - single and double quotes are reversed - it works perfectly.

<a href="javascript:windowHandle = window.open('http://www.yahoo.com','_blank','width=400,height=400,resizable=yes,toolbar=yes,menubar=yes,location=no,scrollbars=yes');windowHandle.focus();"><u>Yahoo</u></a>

Matt

# Waarom wordt ik overspoeld met Longhorn, WinFS, WinFX, Avalon @ Friday, February 20, 2004 1:16 AM

TrackBack

# Waarom wordt ik overspoeld met Longhorn, WinFS, WinFX, Avalon @ Friday, February 20, 2004 1:16 AM

TrackBack

# re: Stored procedures are bad, m'kay?@ Friday, February 20, 2004 3:54 PM

The creators of SQL relational databases did not include stored procedures for their good health. The bottom line is: A good relational database provides many mechanisms for manipulating data and stored procedures is just one.

Most importantly, none of these mechanisms is meant to be used exclusively. Stored procedures have their place at times, and so do dynamic sql statements. Neither one is better than the other at everything! Each one is better than the other at something!

DBA

# re: VB.NET stupidity@ Sunday, February 22, 2004 9:50 AM

3 words.

Yucky.
Foul.
Disgusting.

I hate the VB.NET syntax with a passion, no matter how much I look at it, I cannot get myself used to the way it is.

That whole 'brackets around the keywords' thing has been back since the days of Ms Access (not to say those days have passed yet), if you had any columns that were composed of keywords, you placed [] around them -- I remember spending many hours on that.

Oh well,

Regards,

Matthew Cosier

Matthew Cosier

# re: VB.NET stupidity@ Sunday, February 22, 2004 11:00 AM

**boggle**

You're complaining that VB.NET acts oddly when you name an enum value after a keyword? Especially when it's a Java, C#, and C++ keyword, too? Maybe it's just me, but the idea of using a keyword in a list of enum values is just so ugly that I can't care what hacks MS put together to make it actually work.

Dave Rothgery

# re: VB.NET stupidity@ Sunday, February 22, 2004 11:12 AM

Huh?

New isn't a C#, C++ or Java keyword, 'new' is. Besides, it's not used as a keyword, it's used as a value of an enum.

This means that the parser always knows when it runs into 'New', that this is the value of the type before the '.', which is an enum. If the compiler would have been clever enough, it would then dive into the codepath where enum values are handled. However, it simply doesn't care what type it is, it simply sees 'New' after a '.' and thinks its a methodcall.

That assumption, a methodcall, is also stupid, because I didn't mention '()'. VB.NET has the weird rule that you can omit the '()' if you don't specify any parameters, which leads to this ambiguistic constructs where the parser simply runs into a shift-reduce conflict and CHOOSES one (reduce to enum value vs reduce to methodcall). While shift-reduce conflicts in LR(1) parsers are handled mostly by simply picking one, in this case it is a choice which shows a language design flaw. If '()' would have been mandatory (and why shouldn't it be, you can avoid shift reduce conflicts with it), it wouldn't have ran into this shift-reduce conflict, but would have had 1 option: an enum value.

In this shift-reduce conflict, the compiler designers should have opted for the other option, i.e.: enum value, instead of the assumption Sub New() (constructor) was called.

It's IMHO also bad, to give the constructor a name, which leads also to this kind of weirdness. If they would have opted for the solution every other OO language on the planet has chosen, the simple <accessor> <classname>(...) way, this also would have been avoided.

Frans Bouma

# re: VB.NET stupidity@ Sunday, February 22, 2004 11:53 AM

Do you use VB Frans???

AndrewSeven

# re: VB.NET stupidity@ Sunday, February 22, 2004 11:55 AM

I supply VB.NET templates with LLBLGen Pro, which generate VB.NET code, and I was testing some changes and ran into this :)

Normally I don't use VB.NET, due to personal preferences.

Frans Bouma

# re: VB.NET stupidity@ Sunday, February 22, 2004 12:28 PM

Well I hear you complaining but I don't see you providing a solution. :)

What would be acceptible in your eyes? I'd think either:
a) disallowing the use of keywords as properties
b) providing a compiler warning to the effect of "you've used a keyword to name your field" with a short helpfile description of the keyword and then throw the error you described above.

Scott

# re: VB.NET stupidity@ Sunday, February 22, 2004 12:41 PM

I did provide a solution: force that method calls have to have '()' specified, always. Also, the compiler should be more aware of what it parses. It simply doesn't understand 'EntityState' is an enum. Even the VB.NET editor understands this! (the compile-in-the-background feature didn't bug on this)

Furthermore, I programmed the enum in C#. Let's say this enum is used in a new .NET language, ABC. THis ABC language has a keyword 'Foo'. Now, I have an enum and that enum has a value 'Foo'. How am I supposed to prevent an error in language ABC? I can't, nor should I have to. I can't possibly know all keywords of all languages using .NET to prevent a nameclash with some keyword. After all, 'New' is not a keyword in C#.

Every basic compiler design course will learn you that what the VB.NET compiler did is unacceptable. The reason for this is that it KNOWS what 'New' is in the context of EntityState.New. EntityState is an enum and has just 4 values and because it is an enum, it doesn't have a set of methods. However, it ignores this knowledge and of course because of that runs into trouble.

So both a) and b) are impossible, because I can't know what keywords there are in the languages which can possibly use my C# code.

This is also not a problem, because every decent compiler would know what 'EntityState' is, and thus how to treat the '.' and the following stringtoken.

Even if it was a method of a class, I would only run into trouble in VB.NET as VB.NET calls its constructors 'New'. VB.NET's syntaxis is known to a lot of us, but what about other .NET languages not widely known? What if a language defines 'Copy' as a method name for a construct? I then would run into trouble if I have 'Copy' as a method in my class. I can't avoid that, so it's the responsibility of the language USING the code.

As this is an enum, not a class, the whole subject on 'New' is thus not important, as this isn't an object I want to call 'New' on (when would anyone want to call 'New' on an existing object...) However the compiler thinks it has to, even though this is not an object nor a class. -> bad compiler.

Frans Bouma

# re: VB.NET getting uglier and uglier@ Monday, February 23, 2004 3:13 AM

TrackBack

# re: Private classes and full type name@ Monday, February 23, 2004 4:35 AM

Hehe, funny guy :D

Paul Gielens

# re: Private classes and full type name@ Monday, February 23, 2004 4:40 AM

:) Well it costed me 1 hour of my monday morning. :D It can be ofcourse that it was the monday morning blues that caused me not remembering that the class was private (and also that private classes apparently have a '+' instead of a '.' in the full name :))...

Frans Bouma

# re: VB.NET stupidity@ Monday, February 23, 2004 9:36 AM

Agree completely with Frans. Blaming YOU for using a VB keyword in C# code is simply nonsense.
VB compiler sucks in this one. It should know what you're coding against through its previous parsing context (i.e. EntityState enum type).

Daniel Cazzulino

# re: Private classes and full type name@ Monday, February 23, 2004 9:48 AM

I had the same issue with a public nested class.

Sander Gerz

# re: VB.NET stupidity@ Monday, February 23, 2004 11:05 AM

I suppose if someone doesn't agree with you, you just delete their comment...

Nice.

Cory Smith

# re: VB.NET stupidity@ Monday, February 23, 2004 11:09 AM

I remove unbalanced cry outs from the comments, yes. If you'd have read what I wrote a couple of times in this thread, you wouldn't have written what you wrote.

THere are others who didn't agree with me, their comments are still here.

Frans Bouma

# re: VB.NET stupidity@ Monday, February 23, 2004 11:13 AM

Along the same lines... if you call a constructor with no arguments in VS 2003 the VB editor will actually remove the parentheses. Seems like a step backward for me.

However, if you call a method with no parameters, in VS 2003, the VB editor will add the parentheses if you omit them.

Another one of these nice keywords is "Shared" (static).

Don M

# re: VB.NET stupidity@ Monday, February 23, 2004 11:16 AM

All I said was that it's the design of the language. I could argue about all the bad things that I think C# does... but I won't. It's not for me to say that certain things in C# are bad just because I think the way VB.NET is correct. The point is that this so-called issue you bring up has a solution and is consistant in the language. It's not 'broken'. You argue that New != new... in VB.NET... it does. And yes, New is a keyword. Just as in C# new is a keyword. Just as Dim, Error, Stop, etc. are keywords. I have to put use [Stop] around many of my methods and parameters since it's the best word to use for Stop multimedia. I'm aware that I have to do so... the IDE is also pretty good about pointing it out as well. So, again, what you point out is pointless. I'm doing my best to resist bringing up C#'ism that I think are wrong... since I don't want to get into a C# vs VB.NET... but again, it seems that it's OK to trashtalk VB.NET; got forbid anyone post a similar blog entry similar to this one about C#...

Cory Smith

# re: VB.NET stupidity@ Monday, February 23, 2004 11:25 AM

Cory, have you actually read what I said in this thread? I have the feeling you haven't. I have explained why I think the VB.NET compiler is wrong here. It's common compiler logic: it's an enum type, the value specified IS a value there, the VB.NET editor even knows it is, the background compiler in the editor doesn't barf on it, just the compiler itself does.

Furthermore, I also explained that I don't want nor CAN know every keyword of every .NET language out there nor should I have to.

I get the feeling you are personally offended by some critizism on VB.NET. Don't be, the language IS horrible from a compiler builder point of view. Read Aho-Sethi-Ullmann's "Compilers" and what they teach you about LR(n) parsing and then go back to the VB.NET language which is a NEW language!

I wrote some time ago a blog about that VB.NET users should learn to take critizism. You should take that advice. I mean: you may bash C# all day, and I will join you! Do I feel offended if someone bashes C#? Why? Because I use that language?

I'd be glad if more and more people would write about the negative sides of several language constructs, so they get more air-time and perhaps will convince language designers to change something in the next release. Keeping your mouth shut and nag others who do explain odd/stupid things is definitely NOT going to bring you language enhancements.

Frans Bouma

# re: VB.NET stupidity@ Monday, February 23, 2004 11:30 AM

You don't have to know what keywords are reserved in VB.NET (if you use the IDE)... It points out the mistake immediately. VB.NET is NOT a language that was designed to be used outside of Visual Studio. Based on your comments, I take it that you are not using the IDE... if you were, the editor would POINT THIS ERROR OUT TO YOU!!!!!! Use the tools available to you and you wouldn't have this problem! Stop using notepad.exe... there's the root of your problem. Your complaining because you are using VB.NET in a manner that anyone else using VB.NET would not be.

Cory Smith

# re: VB.NET stupidity@ Monday, February 23, 2004 11:38 AM

huh?

I generate VB.NET code, I'm not typing it. Using templates. FOr obvious reasons I can't use the VB.NET editor for template editing, as the code is ported from C# to VB.NET.

This results thus in compile errors after code generation, because some construct is illegal in VB.NET. I can live with method names which are VB.NET keywords, I can't live with enum VALUES which are seen as methodcalls.

Every 1st year CS student learning the basics of parsing knows how to solve this. Still, the VB.NET compiler thinks I'm using a class when I state an enum.

Btw, IMHO, a language which relies on an editor to be used without errors is not that great. And it's also unnecessary, as the language could have been way more consistent with forced '()' after each method call (it's a new language, therefore it should have been in the language), and the compiler could simply be somewhat smarter to understand enums.

Frans Bouma

# re: VB.NET stupidity@ Monday, February 23, 2004 11:46 AM

My point is... it's like arguing about the which of the following is correct.

VB.NET

Dim a(9) As Integer

C#

int a(10);

Both give you an array of integers with index elements between 0 to 9.

There's just some fundamental differences between the languages. You ***MUST*** know that delcaring arrays are different in the two languages if you are going to work between them. This is just as true with what you point out.

What you are pointing out has nothing to do with compiler problems (even though you keep saying it is). It's purely a syntax issue. And with that, you are pointing out a problem that is completely pointless.

I'm not defending that VB.NET is correct... I'm just saying that what you saying that the VB.NET compiler is flawed is not accurate. The language is well defined and the issue that you bring up... EVERY VB.NET developer knows how to work with this so-called issue.

Asking that () be placed on all methods is **NOT** what VB.NET is about. VB.NET is not about pleasing the C# developer... it's about making VB.NET developers productive.

Again, if you are going to use both languages, you must learn the quirks between the two. Although VB.NET is where I'd prefer to develop, I use C# as well. I can (but won't) point out thinks I don't like about C#; but I don't because C# is for C# developers... not VB.NET developers! Just because I think that C# does something stupid, does not make VB.NET's way right... or vice versa.

Cory Smith

# [VB] Waarde teruggeven aan DOS Shell@ Tuesday, February 24, 2004 2:24 AM

TrackBack

# re: VB.NET stupidity@ Tuesday, February 24, 2004 9:14 PM

I believe it is more the case that they designed it that way specifically, to prevent VB programmers from using reserved words like "class" or "string" in their own code. In treating VB programmers like idiots, they end up building in clunky syntax such as the square bracket issue you described.

As a VB.NET programmer, I'm so used to this issue, it never bothers me anymore, but you're right...it isn't pretty.

You think that's bad though? Try translating some C# programmer's code to vb.net, when they subscribe to the lazy C# guide to programming:
String string
Int int

..drives me crazy....the C# language almost encourages sloppy variable naming...

:-)

John Butler

# What this BLOB is about is "performance".@ Wednesday, February 25, 2004 9:22 AM

Both Stored Procedures (SP) and dynamic SQL (ad-hoc) has its place.

What this BLOB is about is "performance".

Everyone has always said the SP are 100% faster then dynamic SQL (ad-hoc).

It seems that many of you have gone away from this topic because maybe you feel that there really is no big difference in speed or performance. So you feel that you have to post stupid remarks like “If you do not use stored procedures in my company. You will be fired immediately. I do not want sloppy code, but I want professional code.” Ya know what, David B please post your company’s name so that we know of the closed minded company that own and we know to stay away from it. By far the worst post is by David, had nothing to do with the topic and shows his truly closed minded way of thinking.

Now, many of you know Rob Howard. He is a program manager on the .NET Frameworks team at Microsoft. Specifically, he works on the ASP.NET feature of the .NET Framework. Ron is the guy that started all this chatting. He himself has stated that he was wrong in what he said on his bolb’s homepage. He went on to say that Frans Bouma's blog helped him to see the light.

Hmmmmm… maybe if more of you “read” before saying anything you too might see that the performance between SP and dynamic SQL (ad-hoc) are just about the same.


Stored Procedures and Dynamic SQL (ad-hoc) should be used.
Just use them intelligently!!!!


AND REMEMBER!!!!!!

What this BLOB is about is "performance"!!!!!!!! So talk about the performance between Stored Procedures and Dynamic SQL (ad-hoc) only please.

DmJ

# re: VB.NET developers, continued@ Wednesday, February 25, 2004 5:24 PM

They can do whatever they want with VB.NET, I am long gone with C# and couldn't care less. That's what MS did with a die hard VB developer.

Thomas Eyde

# Even bad press is good press.@ Friday, February 27, 2004 11:46 AM

Hope that's true.

TrackBack

# re: VB.NET stupidity@ Friday, February 27, 2004 6:40 PM

int is an alias for Int32, just like Integer is, I dont see the problem...

Michael Teper

# re: VB.NET stupidity@ Saturday, February 28, 2004 2:36 AM

Here's the problem:

In C#

String string
Int int

The same thing in VB.NET (won't compile either, so it must be wrong not to allow this!)

Dim string As String
Dim integer As Integer

Let's add an additional line of code.

Dim someValue As String = String.Format("{0}", 1)

Which String does String.Format use? The one in System or the reference you just created (which is currently set to Nothing since we haven't created a new instance). However, because it is a String, it will work, but still can lead to some confusion to someone else reading the code. How the h*ll is someone supposed to write code like this and expect it to be maintainable?

People complain about VB.NET protecting the developer; however, I find it moronic to create private member variables with the same name as properties or have different variable within the same scope with the only difference being the case sensitivity. Obviously VB.NET doesn't allow for this; but I don't see this as a bad thing. I put this in the same category as VB.NET not allowing you to use reserved words (by default), but you know, it's yet one more thing that people might say adds to "VB.NET stupidity".

Cory Smith

# Subversion SourceControl@ Saturday, February 28, 2004 2:04 PM

TrackBack

# Subversion SourceControl - ASP.NET, C#, Windows, Winforms - Source Control@ Saturday, February 28, 2004 3:45 PM

TrackBack

# re: Private classes and full type name@ Saturday, February 28, 2004 4:39 PM

Frans,

What you're seeing has nothing to do with a class being private. The plus sign (+) is used for nested classes.

-VGA.

VGA

# re: Private classes and full type name@ Saturday, February 28, 2004 5:25 PM

ah thanks :)

Frans Bouma

# re: Subversion: unbeatable sourcecontrol.@ Saturday, February 28, 2004 7:45 PM

Subversion looks perfect for my homebrewn projects, so this night I gave it a try. It's almost perfect except one thing: VS.NET chokes on the .svn folder in the web project directories ('unable to read project information'). AAARRGGHHH!!! Why can't we have directory names starting with a dot? Note that this only applies to web(service) projects. Other projects work fine.

Martijn Boland

# Frans Bouma is getting ripped off.@ Sunday, February 29, 2004 3:35 AM

TrackBack

# re: Code theft: Codease uses my LLBLGen 1.x sourcecode as if it is theirs!@ Sunday, February 29, 2004 5:42 AM

this is exactly the problem with the licence you chose. Don't forget that Microsoft uses BSD code in Windows with only very minor notification, and basically unless you choose a different licence, there's nothing you can do about this. In fact I think the BSD licence no longer contains the advertising clause....

matthew

# re: Code theft: Codease uses my LLBLGen 1.x sourcecode as if it is theirs!@ Sunday, February 29, 2004 5:50 AM

This is the license I used:

COPYRIGHTS:
Copyright (c)2002 Solutions Design. All rights reserved.
http://www.sd.nl

Released under the following license: (BSD2)
-------------------------------------------
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:

1) Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
2) Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

(disclaimer)
-------
This is not met. Nowhere can I find who wrote their software (namely: me).

It's ok for me that they sell it, that's indeed the disadvantage of the BSD license and I knew that upfront, as you said, MS uses BSD licensed code too (but says so), however the stuff still needs to meet the license of the code it contains, which in this case it doesn't. :(

Now it appears as if they had a great idea, they wrote some nice tool and their customers think they actually did. The license is in every codefile they have used in the tool, they couldn't have missed it.

Frans Bouma

# re: Code theft: Codease uses my LLBLGen 1.x sourcecode as if it is theirs!@ Sunday, February 29, 2004 5:58 AM

more stuff from the same guys:

http://www.invenmanager.com/products/DesktopDefault.aspx

is this ripped off as well?

matthew

# re: Code theft: Codease uses my LLBLGen 1.x sourcecode as if it is theirs!@ Sunday, February 29, 2004 6:08 AM

That Export .NET sounds like McLaws' GenX control.

I'll mail him about this. Thanks for the tip.

Frans Bouma

# re: Code theft: Codease uses my LLBLGen 1.x sourcecode as if it is theirs!@ Sunday, February 29, 2004 6:12 AM

It can also be SeriousFish.com's eXport.NET... but that's commercial too... A bit too much work perhaps to create your own tool with that.

I'm not aware of an open source excel exporter tool for .NET, if there is, it's a likely candidate...

Frans Bouma

# re: Code theft: Codease uses my LLBLGen 1.x sourcecode as if it is theirs!@ Sunday, February 29, 2004 6:26 AM

this company is also called orilogic. The exporter is not real Excel, it just seems (from reflector) to emit HTML, which Excel can parse.....

matthew

# re: Code theft: Codease uses my LLBLGen 1.x sourcecode as if it is theirs!@ Sunday, February 29, 2004 9:31 AM

Just spread the word folks. If this isn't outright theft, it's certainly in the gray area. Word of mouth might be sufficient to at least partially nullify their ill gotten gain.

Brad More

# Sourcecontrol comparison@ Sunday, February 29, 2004 9:43 AM

Subversion isn't the only CVS OR VSS competitor. I ran into this comparison the other day: http://better-scm.berlios.de/comparison/comparison.html

Troels Arvin

# re: VB.NET stupidity@ Sunday, February 29, 2004 10:08 AM

Similar discussion back in October '02:
http://groups.google.com.au/groups?selm=%230GOfVwaCHA.3928%40tkmsftngp08

Note the 'interesting' feature if the enum has a member ToString.

Mark Hurd

# re: Subversion: unbeatable sourcecontrol.@ Sunday, February 29, 2004 11:28 AM

Martijin: I've experienced this same problem. Its more of a VS.NET/FPSE issue than an SVN issue. If you're working on web projects locally or across a file share, you can get around this by converting it to a regular class library project. I have some docementation on how to do this that i've compiled from various sources on the internet about how to do this. I can email it to anyone interested. See my URL for my email address. I guess if you have to work through FPSE, you're SOL for now.

Jim Bolla

# Karim Hyatt is also getting ripped off it appears@ Sunday, February 29, 2004 6:43 PM

Look at this: http://www.codease.com/web/DesktopDefault.aspx?tabid=81

Then compare to this: http://www.microsoft.com/belux/nl/msdn/community/columns/hyatt/ntier1.mspx

I wish that Codease will be hit by the MS legal department... hard. Now, think that I should ever wish that...

Martin Liversage

# re: Code theft: Codease uses my LLBLGen 1.x sourcecode as if it is theirs!@ Sunday, February 29, 2004 10:13 PM

Sheesh. There are always slackers ripping off the hard work of others.

Darrell

# Eindelijk! SourceSafe kan weg...@ Sunday, February 29, 2004 11:05 PM

TrackBack

# Eindelijk! SourceSafe kan weg...@ Sunday, February 29, 2004 11:06 PM

TrackBack

# re: Subversion: unbeatable sourcecontrol.@ Monday, March 01, 2004 7:59 AM

Does it integrate nicely with VS.NET (as VSS does)?

Thanks,
Deyan Petrov

Deyan Petrov

# re: Code theft: Codease uses my LLBLGen 1.x sourcecode as if it is theirs!@ Monday, March 01, 2004 12:33 PM

Well, well,

Thanks Martin for letting me know. Theft is theft, I guess that for some people, nothing is sacred!

Karim Hyatt

# re: Code theft: Codease uses my LLBLGen 1.x sourcecode as if it is theirs!@ Monday, March 01, 2004 2:10 PM

Frans,
how do you deal with the situation?

Are you going to let them know, that they have stolen your source ?

FG

# re: Subversion: unbeatable sourcecontrol.@ Monday, March 01, 2004 3:01 PM

I haven't tried it, but AnkhSVN is a Visual Studio .NET addin for Subversion (http://ankhsvn.tigris.org/).

John Bush

# re: Subversion: unbeatable sourcecontrol.@ Monday, March 01, 2004 3:05 PM

martijn boland:

you guessed it. vs.net chokes when you include subdirectories with a ".".

if you take a look at vault (http://www.sourcegear.com/vault - free for single users), in the early stages, we stored state information in hidden directories named - .sgvault...

we'll its about 15 months later, and suffice it to say you won't find .sgvault state folders anymore.

jeff clausius
sourcegear

jeff clausius

# re: Code theft: Codease uses my LLBLGen 1.x sourcecode as if it is theirs!@ Monday, March 01, 2004 4:00 PM

I've mailed them, they mailed me back that they disagreed... The license is very clear, very small and they didn't meet any of the points. Their product is for over 90% my code, still they claim copyright.

They're in singapore, I'm in The Netherlands, I'm not really sure what to do, besides spreading the word. I hope enough people will know that they are just trying to make a quick buck by deliberately not obeying a license.

Frans Bouma

# re: VB.NET stupidity@ Monday, March 01, 2004 4:29 PM

Cory, do you know anything about the base class libraries, C#, or IL? You say:
C#
int a(10);
Both give you an array of integers with index elements between 0 to 9.

Huh? int a(10)? The C# compiler I have won't take that.

Then you go on with the utterly silly:

Dim string As String
Dim someValue As String = String.Format("{0}", 1)

And then ask which "string" it's going to use? Guess what? There's only ONE possibility (if the code compiled)! The method [mscorlib]System.String::Format is static, not instance. The VB compiler, for some odd reason, perhaps the same reason it lets you import a class, lets you use static methods right off of instance variables.

Requiring parens after a method call isn't about making C# programmers happy (most of us don't use VB). It's about making the language more consise and clear. Most of the complaints I hear about why VB syntax should be left alone are from VB programmers who haven't used other languages and don't understand why code should be consistent and clear.

There is simply no reason why VB shouldn't compile Dim x as someEnum = someEnum.New -- regardless of how it treats parens on methods. You cannot call someClass.New() except from a constructor (or you get a BC30282). Enum's don't have any constructors called, so that's not a possibility. After all, someEnum.Shared works just fine.

Michael Giagnocavo

# re: VB.NET stupidity@ Monday, March 01, 2004 8:45 PM

AAAAAAH!!!

Your missing the point. My appologies for incorrectly using () where I should have use []. (If still wrong, sorry, I don't spend all day in C#.) The point was that in C# you define an array using the number of elements and VB.NET you use the maximum index element. Which is better? It's not important. Each language has it's difference; learn them.

And, yes, you are correct, the VB.NET code you point out is 'utterly silly'. However, if the host of this site wouldn't CENSOR entries, you would see that I was responding Michael Teper, who stated "int is an alias for Int32, just like Integer is, I dont see the problem...". Michaels statement was in regards to the following code (posted by someone who was a victim of censorship):

String string;
Int int;

My point with this to point out how silly my code looked if VB.NET would allow you to define a variable named string as String and and integer as Integer.

Paul Vick has stated that he will go into details why VB.NET has the requirement to add [] around reserved keywords and I'm interested in hearing what he has to say. However, back to my original point... it's in the language, it's by design, it's consistant, it works... get over the problem and find a real problem to focus upon.

Just as you pointed out, I could argue... Why does C# require [] in some places and () in others. People could argue that it's better and whatnot, however, in the end, it's what the language designers decided to do... probably based on the fact that's what C and Java do and C# is targetted to those kind of developers. No matter what the case is, it's the way that it is... adjust accordingly if you plan on using that language.

Cory Smith

# Advanced .NET Programming@ Monday, March 01, 2004 9:43 PM

TrackBack

# Advanced .NET Programming@ Monday, March 01, 2004 9:43 PM

TrackBack

# re: VB.NET stupidity@ Tuesday, March 02, 2004 2:31 AM

Cory: I've removed your last comment. YOU type your own comments. If you reply like a 3 year old to my blog I feel free to remove your comment, it's my blog after all. I don't want to go as far as not allowing to comment on VB.NET related blogs but I'm not far from it.

You totally missed the point of the argument. You keep on moaning about that it is in hte language, by design (!) etc. and that C# has problems too. So? From a compiler perspective, the error it gave me which was the start of this blog entry is totally weird and should not happen.

VB.NET includes some design decisions which will hurt them in the end, like having everything between '()' instead of sometimes [] and sometimes (). If you can't deal with that, that's your problem, but please LEARN to live with critizism on VB.NET. However you can't as it seems, which is a bummer, because it's unnecessary: it's just a language, not a way of living. Criticizing VB.NET does not critize the users, it critizises the language. Don't take it in a different way, but if you do, again: that's your problem, not mine.

(feel free to start a blog on how crap C# is, and as I said, I'll probably join you. See the point?)

Frans Bouma

# re: VB.NET stupidity@ Tuesday, March 02, 2004 3:00 AM

"Paul Vick has stated that he will go into details why VB.NET has the requirement to add [] around reserved keywords and I'm interested in hearing what he has to say. However, back to my original point... it's in the language, it's by design, it's consistant, it works... get over the problem and find a real problem to focus upon."
I understand why it is in the language, because it is a case insensitive language, which implies that you can only distinguish keyword tokens from identifier tokens by different character sequences, not by casing. That's the theoretical why.

I disagree it is consistent, because it is not: you place [] sometimes around identifiers, in other times you don't.

Will you believe me if I say that you can do without [] characters in the vast majority of cases the VB.NET compiler demands you for it? The reason for that is that it doesn't to internal error recovery.

If I say this:
Public Function Like() As String
Return CreateSomeString()
End Function

it will not compile. 'Like' is a keyword in VB.NET. Do you see it as a keyword in this context? Not at all. The compiler can thus choose to see it as an identifier too. Problem solved. And this will never be interpreted differently: the context is clear.

About contexts: "Like" is the same keyword but in a string context, and thus it is found 'normal' that the VB.NET compiler doesn't require you to do this: "[Like]".

Hold that context concept and move towards the issue at hand: EnumType.New. No-one in his right mind will say I'm calling New there. It's an enum. And not defined in VB.NET either. (please cut the crap about not including keywords in enums, I don't know nor can now all keywords VB.NET has nor any other language). I have to state EnumType.[New], because the compiler thinks I'm calling the constructor. Which is the most wrong conclusion that can be drawn, because an enumtype doesn't have a constructor. It can also only draw this conclusion because omitted () after a methodcall are legit. (so you can't see if it is a methodcall, a property or a public field! how consistent). A couple of bad language decisions add up here.

Because New is in this context just an enum value (the background compiler in the editor does understand this!) the compiler had to decide it IS a value, BECAUSE it is an enum, BEFORE going into backtracking and trying other possibilities.

Yes, that's ambiguistic parsing, but VB.NET contains ambigu syntaxis. (I gave an example above: property/public field access or method call, can you tell? -> myObject.Foo -> no. Other example: i = foo(bar). Is foo a method, or an array?)

IF your language has ambiguistic constructs, include a parser who can deal with ambiguistic constructs. In a lot of areas the VB.NET compiler can, however in other areas it can't and I wonder why.

(yes, C, C++ and C# can all get rid of the ; as well with a clever parser)

Frans Bouma

# re: Code theft: Codease uses my LLBLGen 1.x sourcecode as if it is theirs!@ Tuesday, March 02, 2004 6:12 AM

that pisses me off. frans puts in a shitload of hard work, someone else rips it off and charges for it.

how sure are you that they've copied your code, frans? have u seen their source code? i would imagine there's a fine line between "similar in design" and "copying your code".

if you're certain that they've copied it, then under the terms of the license, you should be able to sue them regardless of where they trade from. if they are making money from your product illegally you should be able to sue them for exactly that amount.

but for now, if you're sure about this, spread the word. a LOT of people read asp.net/forums, so i'd consider letting people over there know.

m7

# re: Code theft: Codease uses my LLBLGen 1.x sourcecode as if it is theirs!@ Tuesday, March 02, 2004 6:22 AM

Well, I'm not offended by them selling my code, because that's related to the license I used: BSD2, and I used that license on purpose: because I believe in total freedom of sourcecode. The thing is: the license is not restrictive but does have a few rules. One of them is that you have to state who really made the code. This is not done. In other words: no customer of them knows I made the code (more than 90% of the code in their app is mine), they all think CodeAse made the code, which is not the case.

Example:
Decompiled from their CodeAse.Tables.dll: (clsTable.GetFields(), they didn't even change the names)
-------
public void GetFields()
{ SqlDataAdapter adapter1;
SqlCommand command1;
DataTable table1;
string text1;
int num1;
DataRow row1;
int num2;
string text2;
Exception exception1;
table1 = new DataTable();
text1 = "SELECT INFORMATION_SCHEMA.COLUMNS.*,(SELECT COLUMNPROPERTY(OBJECT_ID(@sTableName), INFORMATION_SCHEMA.COLUMNS.COLUMN_NAME, 'IsComputed')) AS IsComputed,(SELECT COL_LENGTH(@sTableName, INFORMATION_SCHEMA.COLUMNS.COLUMN_NAME)) AS ColumnLength,(SELECT COLUMNPROPERTY(OBJECT_ID(@sTableName), INFORMATION_SCHEMA.COLUMNS.COLUMN_NAME, 'IsIdentity')) AS IsIdentity,(SELECT COLUMNPROPERTY(OBJECT_ID(@sTableName), INFORMATION_SCHEMA.COLUMNS.COLUMN_NAME, 'IsRowGuidCol')) AS IsRowGuidColumn,(ISNULL((SELECT 1 FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE TABLE_NAME=@sTableName AND TABLE_SCHEMA='dbo' AND COLUMN_NAME=INFORMATION_SCHEMA.COLUMNS.COLUMN_NAME AND EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE TABLE_NAME=@sTableName AND TABLE_SCHEMA='dbo' AND CONSTRAINT_TYPE = 'PRIMARY KEY' AND CONSTRAINT_NAME=INFORMATION_SCHEMA.KEY_COLUMN_USAGE.CONSTRAINT_NAME)), 0)) AS IsPrimaryKey,(ISNULL((SELECT 1 FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE TABLE_NAME=@sTableName AND TABLE_SCHEMA='dbo'AND COLUMN_NAME=INFORMATION_SCHEMA.COLUMNS.COLUMN_NAME AND EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE TABLE_NAME=@sTableName AND TABLE_SCHEMA='dbo' AND CONSTRAINT_TYPE = 'FOREIGN KEY' AND CONSTRAINT_NAME=INFORMATION_SCHEMA.KEY_COLUMN_USAGE.CONSTRAINT_NAME)), 0)) AS IsForeignKey, (ISNULL((SELECT 1 FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE TABLE_NAME=@sTableName AND TABLE_SCHEMA='dbo'AND COLUMN_NAME=INFORMATION_SCHEMA.COLUMNS.COLUMN_NAME AND EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE TABLE_NAME=@sTableName AND TABLE_SCHEMA='dbo' AND CONSTRAINT_TYPE = 'UNIQUE' AND CONSTRAINT_NAME=INFORMATION_SCHEMA.KEY_COLUMN_USAGE.CONSTRAINT_NAME)), 0)) AS HasUniqueConstraint FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @sTableName AND TABLE_SCHEMA='dbo'";
command1 = new SqlCommand(text1, this.m_scoActiveConnection);
adapter1 = new SqlDataAdapter(command1);
try
{
command1.Parameters.Add(new SqlParameter("@sTableName", 22, 250, 1, 0, 0, 0, "", 1024, this.m_sTableName));
adapter1.Fill(table1);
this.m_arrfFields = new clsField[((uint) table1.Rows.Count)];
for (num1 = 0; (num1 < this.m_arrfFields.Length); num1 = (num1 + 1))
{
row1 = table1.Rows[num1];
this.m_arrfFields[num1] = new clsField(row1["COLUMN_NAME"].ToString());
this.m_arrfFields[num1].bIsComputed = (Convert.ToInt32(row1["IsComputed"]) == 1);
this.m_arrfFields[num1].bIsForeignKey = (Convert.ToInt32(row1["IsForeignKey"]) == 1);
this.m_arrfFields[num1].bIsPrimaryKey = (Convert.ToInt32(row1["IsPrimaryKey"]) == 1);
this.m_arrfFields[num1].bIsIdentity = (Convert.ToInt32(row1["IsIdentity"]) == 1);
this.m_arrfFields[num1].bIsRowGUIDColumn = (Convert.ToInt32(row1["IsRowGuidColumn"]) == 1);
this.m_arrfFields[num1].bHasUniqueConstraint = (Convert.ToInt32(row1["HasUniqueConstraint"]) == 1);
this.m_arrfFields[num1].sDataType = row1["DATA_TYPE"].ToString();
this.m_arrfFields[num1].iLength = Convert.ToInt32(row1["ColumnLength"]);
if (row1["CHARACTER_MAXIMUM_LENGTH"].ToString().Length > 0)
{
num2 = Convert.ToInt32(row1["CHARACTER_MAXIMUM_LENGTH"]);
if ((this.m_arrfFields[num1].sDataType.ToLower(CultureInfo.InvariantCulture) == "nvarchar") || (this.m_arrfFields[num1].sDataType.ToLower(CultureInfo.InvariantCulture) == "nchar"))
{
this.m_arrfFields[num1].iLength = num2;

}

}
this.m_arrfFields[num1].iOrdinalPosition = Convert.ToInt32(row1["ORDINAL_POSITION"]);
if (row1["NUMERIC_PRECISION"].ToString().Length > 0)
{
this.m_arrfFields[num1].iPrecision = Convert.ToInt32(row1["NUMERIC_PRECISION"]);

}
if (row1["NUMERIC_SCALE"].ToString().Length > 0)
{
this.m_arrfFields[num1].iScale = Convert.ToInt32(row1["NUMERIC_SCALE"]);

}
this.m_arrfFields[num1].slTypeToPrefix = this.m_slTypeToPrefix;
this.m_arrfFields[num1].slTypeToNETType = this.m_slTypeToNETType;
this.m_arrfFields[num1].slTypeToVBCastType = this.m_slTypeToVBCastType;
this.m_arrfFields[num1].slTypeToSqlType = this.m_slTypeToSqlType;
this.m_arrfFields[num1].slTypeToCSCastType = this.m_slTypeToCSCastType;
this.m_arrfFields[num1].bIsNullable = (row1["IS_NULLABLE"].ToString().ToLower(CultureInfo.InvariantCulture) == "yes");
this.m_arrfFields[num1].sDefaultValue = row1["COLUMN_DEFAULT"].ToString();
if (this.m_arrfFields[num1].bIsPrimaryKey)
{
this.m_iAmountPrimaryKeyFields = (this.m_iAmountPrimaryKeyFields + 1);

}
text2 = string.Concat(this.m_sTableName.ToLower(CultureInfo.InvariantCulture), ".", this.m_arrfFields[num1].sFieldName.ToLower(CultureInfo.InvariantCulture));
this.m_arrfFields[num1].bIsExcluded = !(this.m_alExcludedFields.IndexOf(text2) < 0);

}

}
catch (Exception exception2)
{
exception1 = exception2;
throw new Exception(string.Concat("clsTable::GetFields:Error occured: ", exception1.Message), exception1);

}
finally
{
adapter1.Dispose();
adapter1 = null;

}

}
-----

Source from LLBLGen 1.x: clsTable.GetFields():
public void GetFields()
{
SqlDataAdapter sdaFieldRetrieval;
SqlCommand scmFieldRetrieval;
DataTable dtFields = new DataTable();

// we'll retrieve ALL fieldinformation with 1 single query. this query is quite long, but
// doesn't use any systemspecific tables at all.
string sSQL = "SELECT INFORMATION_SCHEMA.COLUMNS.*,(SELECT COLUMNPROPERTY(OBJECT_ID(@sTableName), INFORMATION_SCHEMA.COLUMNS.COLUMN_NAME, 'IsComputed')" +
") AS IsComputed,(SELECT COL_LENGTH(@sTableName, INFORMATION_SCHEMA.COLUMNS.COLUMN_NAME)) AS ColumnLength,(SELECT " +
"COLUMNPROPERTY(OBJECT_ID(@sTableName), INFORMATION_SCHEMA.COLUMNS.COLUMN_NAME, 'IsIdentity')) AS IsIdentity,(SELECT " +
"COLUMNPROPERTY(OBJECT_ID(@sTableName), INFORMATION_SCHEMA.COLUMNS.COLUMN_NAME, 'IsRowGuidCol')) AS IsRowGuidColumn,(ISNULL(" +
"(SELECT 1 FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE TABLE_NAME=@sTableName AND TABLE_SCHEMA='dbo' AND COLUMN_NAME=" +
"INFORMATION_SCHEMA.COLUMNS.COLUMN_NAME AND EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE TABLE_NAME=@sTableName " +
"AND TABLE_SCHEMA='dbo' AND CONSTRAINT_TYPE = 'PRIMARY KEY' AND CONSTRAINT_NAME=INFORMATION_SCHEMA.KEY_COLUMN_USAGE.CONSTRAINT_NAME)" +
"), 0)) AS IsPrimaryKey,(ISNULL((SELECT 1 FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE TABLE_NAME=@sTableName AND TABLE_SCHEMA='dbo'" +
"AND COLUMN_NAME=INFORMATION_SCHEMA.COLUMNS.COLUMN_NAME AND EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE TABLE_NAME=" +
"@sTableName AND TABLE_SCHEMA='dbo' AND CONSTRAINT_TYPE = 'FOREIGN KEY' AND CONSTRAINT_NAME=INFORMATION_SCHEMA.KEY_COLUMN_USAGE.CONSTRAINT_NAME)" +
"), 0)) AS IsForeignKey, (ISNULL((SELECT 1 FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE TABLE_NAME=@sTableName AND TABLE_SCHEMA='dbo'" +
"AND COLUMN_NAME=INFORMATION_SCHEMA.COLUMNS.COLUMN_NAME AND EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE " +
"TABLE_NAME=@sTableName AND TABLE_SCHEMA='dbo' AND CONSTRAINT_TYPE = 'UNIQUE' AND CONSTRAINT_NAME=INFORMATION_SCHEMA.KEY_COLUMN_USAGE.CONSTRAINT_NAME)" +
"), 0)) AS HasUniqueConstraint FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @sTableName AND TABLE_SCHEMA='dbo'";
scmFieldRetrieval = new SqlCommand(sSQL,m_scoActiveConnection);
sdaFieldRetrieval = new SqlDataAdapter(scmFieldRetrieval);
try
{
scmFieldRetrieval.Parameters.Add(new SqlParameter("@sTableName", SqlDbType.VarChar, 250, ParameterDirection.Input, false, 0, 0, "", DataRowVersion.Proposed, m_sTableName));

// Fill the datatable
sdaFieldRetrieval.Fill(dtFields);

// Create field objects
m_arrfFields = new clsField[dtFields.Rows.Count];

// for each row, add a clsField object to the array.
for(int i = 0;i < m_arrfFields.Length;i++)
{
DataRow drCurrent = dtFields.Rows[i];

m_arrfFields[i] = new clsField(drCurrent["COLUMN_NAME"].ToString());
// fill properties.
m_arrfFields[i].bIsComputed = (Convert.ToInt32(drCurrent["IsComputed"]) == 1);
m_arrfFields[i].bIsForeignKey = (Convert.ToInt32(drCurrent["IsForeignKey"]) == 1);
m_arrfFields[i].bIsPrimaryKey = (Convert.ToInt32(drCurrent["IsPrimaryKey"]) == 1);
m_arrfFields[i].bIsIdentity = (Convert.ToInt32(drCurrent["IsIdentity"]) == 1);
m_arrfFields[i].bIsRowGUIDColumn = (Convert.ToInt32(drCurrent["IsRowGuidColumn"]) == 1);
m_arrfFields[i].bHasUniqueConstraint = (Convert.ToInt32(drCurrent["HasUniqueConstraint"]) == 1);
m_arrfFields[i].sDataType = drCurrent["DATA_TYPE"].ToString();
m_arrfFields[i].iLength = Convert.ToInt32(drCurrent["ColumnLength"]);
if(drCurrent["CHARACTER_MAXIMUM_LENGTH"].ToString().Length > 0)
{
// has a value
int iCharacterMaxLength = Convert.ToInt32(drCurrent["CHARACTER_MAXIMUM_LENGTH"]);

if((m_arrfFields[i].sDataType.ToLower(CultureInfo.InvariantCulture) == "nvarchar") ||
(m_arrfFields[i].sDataType.ToLower(CultureInfo.InvariantCulture) == "nchar"))
{
// set length to length mentioned in CHARACTER_MAXIMUM_LENGTH
m_arrfFields[i].iLength = iCharacterMaxLength;
}
}
m_arrfFields[i].iOrdinalPosition = Convert.ToInt32(drCurrent["ORDINAL_POSITION"]);
if(drCurrent["NUMERIC_PRECISION"].ToString().Length > 0)
{
m_arrfFields[i].iPrecision = Convert.ToInt32(drCurrent["NUMERIC_PRECISION"]);
}
if(drCurrent["NUMERIC_SCALE"].ToString().Length > 0)
{
m_arrfFields[i].iScale = Convert.ToInt32(drCurrent["NUMERIC_SCALE"]);
}
m_arrfFields[i].slTypeToPrefix = m_slTypeToPrefix;
m_arrfFields[i].slTypeToNETType = m_slTypeToNETType;
m_arrfFields[i].slTypeToVBCastType = m_slTypeToVBCastType;
m_arrfFields[i].slTypeToSqlType = m_slTypeToSqlType;
m_arrfFields[i].slTypeToCSCastType = m_slTypeToCSCastType;
m_arrfFields[i].bIsNullable = (drCurrent["IS_NULLABLE"].ToString().ToLower(CultureInfo.InvariantCulture) == "yes");
m_arrfFields[i].sDefaultValue = drCurrent["COLUMN_DEFAULT"].ToString();
if(m_arrfFields[i].bIsPrimaryKey)
{
m_iAmountPrimaryKeyFields++;
}

// check if this field is excluded (i.e., in the list of excluded fields)
m_arrfFields[i].bIsExcluded = (m_alExcludedFields.IndexOf(m_arrfFields[i].sFieldName.ToLower(CultureInfo.InvariantCulture)) >= 0);
}
}
catch(Exception ex)
{
// bubble error.
throw new Exception("clsTable::GetFields:Error occured: " + ex.Message, ex);
}
finally
{
sdaFieldRetrieval.Dispose();
sdaFieldRetrieval = null;
}
}

Frans Bouma

# re: Code theft: Codease uses my LLBLGen 1.x sourcecode as if it is theirs!@ Tuesday, March 02, 2004 6:34 AM

Some small differences are most likely due to optimization of the compiler. oh wait, I can check compiled versions of LLBLGen 1.x with their dll :D

Compiled LLBLGen 1.x clsTables.GetFields()
------
public void GetFields()
{ SqlDataAdapter adapter1;
SqlCommand command1;
DataTable table1;
string text1;
int num1;
DataRow row1;
int num2;
Exception exception1;
table1 = new DataTable();
text1 = "SELECT INFORMATION_SCHEMA.COLUMNS.*,(SELECT COLUMNPROPERTY(OBJECT_ID(@sTableName), INFORMATION_SCHEMA.COLUMNS.COLUMN_NAME, 'IsComputed')) AS IsComputed,(SELECT COL_LENGTH(@sTableName, INFORMATION_SCHEMA.COLUMNS.COLUMN_NAME)) AS ColumnLength,(SELECT COLUMNPROPERTY(OBJECT_ID(@sTableName), INFORMATION_SCHEMA.COLUMNS.COLUMN_NAME, 'IsIdentity')) AS IsIdentity,(SELECT COLUMNPROPERTY(OBJECT_ID(@sTableName), INFORMATION_SCHEMA.COLUMNS.COLUMN_NAME, 'IsRowGuidCol')) AS IsRowGuidColumn,(ISNULL((SELECT 1 FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE TABLE_NAME=@sTableName AND TABLE_SCHEMA='dbo' AND COLUMN_NAME=INFORMATION_SCHEMA.COLUMNS.COLUMN_NAME AND EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE TABLE_NAME=@sTableName AND TABLE_SCHEMA='dbo' AND CONSTRAINT_TYPE = 'PRIMARY KEY' AND CONSTRAINT_NAME=INFORMATION_SCHEMA.KEY_COLUMN_USAGE.CONSTRAINT_NAME)), 0)) AS IsPrimaryKey,(ISNULL((SELECT 1 FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE TABLE_NAME=@sTableName AND TABLE_SCHEMA='dbo'AND COLUMN_NAME=INFORMATION_SCHEMA.COLUMNS.COLUMN_NAME AND EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE TABLE_NAME=@sTableName AND TABLE_SCHEMA='dbo' AND CONSTRAINT_TYPE = 'FOREIGN KEY' AND CONSTRAINT_NAME=INFORMATION_SCHEMA.KEY_COLUMN_USAGE.CONSTRAINT_NAME)), 0)) AS IsForeignKey, (ISNULL((SELECT 1 FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE TABLE_NAME=@sTableName AND TABLE_SCHEMA='dbo'AND COLUMN_NAME=INFORMATION_SCHEMA.COLUMNS.COLUMN_NAME AND EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE TABLE_NAME=@sTableName AND TABLE_SCHEMA='dbo' AND CONSTRAINT_TYPE = 'UNIQUE' AND CONSTRAINT_NAME=INFORMATION_SCHEMA.KEY_COLUMN_USAGE.CONSTRAINT_NAME)), 0)) AS HasUniqueConstraint FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @sTableName AND TABLE_SCHEMA='dbo'";
command1 = new SqlCommand(text1, this.m_scoActiveConnection);
adapter1 = new SqlDataAdapter(command1);
try
{
command1.Parameters.Add(new SqlParameter("@sTableName", 22, 250, 1, 0, 0, 0, "", 1024, this.m_sTableName));
adapter1.Fill(table1);
this.m_arrfFields = new clsField[table1.Rows.Count];
for (num1 = 0; (num1 < this.m_arrfFields.Length); num1 = (num1 + 1))
{
row1 = table1.Rows[num1];
this.m_arrfFields[num1] = new clsField(row1["COLUMN_NAME"].ToString());
this.m_arrfFields[num1].bIsComputed = (Convert.ToInt32(row1["IsComputed"]) == 1);
this.m_arrfFields[num1].bIsForeignKey = (Convert.ToInt32(row1["IsForeignKey"]) == 1);
this.m_arrfFields[num1].bIsPrimaryKey = (Convert.ToInt32(row1["IsPrimaryKey"]) == 1);
this.m_arrfFields[num1].bIsIdentity = (Convert.ToInt32(row1["IsIdentity"]) == 1);
this.m_arrfFields[num1].bIsRowGUIDColumn = (Convert.ToInt32(row1["IsRowGuidColumn"]) == 1);
this.m_arrfFields[num1].bHasUniqueConstraint = (Convert.ToInt32(row1["HasUniqueConstraint"]) == 1);
this.m_arrfFields[num1].sDataType = row1["DATA_TYPE"].ToString();
this.m_arrfFields[num1].iLength = Convert.ToInt32(row1["ColumnLength"]);
if (row1["CHARACTER_MAXIMUM_LENGTH"].ToString().Length > 0)
{
num2 = Convert.ToInt32(row1["CHARACTER_MAXIMUM_LENGTH"]);
if ((this.m_arrfFields[num1].sDataType.ToLower(CultureInfo.InvariantCulture) == "nvarchar") || (this.m_arrfFields[num1].sDataType.ToLower(CultureInfo.InvariantCulture) == "nchar"))
{
this.m_arrfFields[num1].iLength = num2;

}

}
this.m_arrfFields[num1].iOrdinalPosition = Convert.ToInt32(row1["ORDINAL_POSITION"]);
if (row1["NUMERIC_PRECISION"].ToString().Length > 0)
{
this.m_arrfFields[num1].iPrecision = Convert.ToInt32(row1["NUMERIC_PRECISION"]);

}
if (row1["NUMERIC_SCALE"].ToString().Length > 0)
{
this.m_arrfFields[num1].iScale = Convert.ToInt32(row1["NUMERIC_SCALE"]);

}
this.m_arrfFields[num1].slTypeToPrefix = this.m_slTypeToPrefix;
this.m_arrfFields[num1].slTypeToNETType = this.m_slTypeToNETType;
this.m_arrfFields[num1].slTypeToVBCastType = this.m_slTypeToVBCastType;
this.m_arrfFields[num1].slTypeToSqlType = this.m_slTypeToSqlType;
this.m_arrfFields[num1].slTypeToCSCastType = this.m_slTypeToCSCastType;
this.m_arrfFields[num1].bIsNullable = (row1["IS_NULLABLE"].ToString().ToLower(CultureInfo.InvariantCulture) == "yes");
this.m_arrfFields[num1].sDefaultValue = row1["COLUMN_DEFAULT"].ToString();
if (this.m_arrfFields[num1].bIsPrimaryKey)
{
this.m_iAmountPrimaryKeyFields = (this.m_iAmountPrimaryKeyFields + 1);

}
this.m_arrfFields[num1].bIsExcluded = !(this.m_alExcludedFields.IndexOf(this.m_arrfFields[num1].sFieldName.ToLower(CultureInfo.InvariantCulture)) < 0);

}

}
catch (Exception exception2)
{
exception1 = exception2;
throw new Exception(string.Concat("clsTable::GetFields:Error occured: ", exception1.Message), exception1);

}
finally
{
adapter1.Dispose();
adapter1 = null;

}

}

i.o.w.: exactly the same. And it is exactly the same, over and over and over. They moved around some classes into dll's, but that doesn't alter the code one bit.

The irony was that when I wanted to test it, it asked for a 'license' and because I didn't have one I could not test it... just use Northwind.

The generated code is changed a little, it now uses some central methods, however the vast majority of it is the same. All SQL proc code for example is exactly the same.

These central methods are very different in coding style. (commenting for example, no XML comments).

It seems like a quick sunday afternoon hack in existing code (i.e. add some lines, slap your name on it and you have a product).

This issue has changed my view on open source licenses though. Every piece of open source I'll release in the future will be GPL-ed, if they then violate it, I can mail Slashdot and the FSF and it will be solved :)

The suggestion of the forums is ok, but it will give them extra exposure as well, and I don't want that too. Decisions...

Thanks for the support, all!

Frans Bouma

# re: Stored procedures are bad, m'kay?@ Tuesday, March 02, 2004 7:44 AM

I'm no DB guru.
I looked at this thread to get an idea of what I should, or should not be doing.
Well thanks Guys, now I've got N.F.I. after all the differing opinions.

The only thing that seems clear to me is that anything that has a fanatical element (religious zealots, Football fans, one party politcal voters, stored proc haters/lovers, etc) usually results in those people being so clouded by their own bias, that they cannot see the other sides benefits.

Frans and the like seem like nothing more than people who are intent only on trying to prove how smart they are, and not applying common sense to a particular situation.

Now, these people probably are geniuses. The problem is that most people aren't. So if you need to be a guru to work out all the ways you can get around using Stored Procs, then you are proving even more that you are just trying to big note yourself.

The other thing is that I must be on a different planet. I work in a LARGE IT environment. NO-ONE develops an App from start to finish. We have upto 6 different areas working on the one app. DBA's do DBA work. ASP programmers do that, etc. etc.
If anyone tried to be a smart arse and code the thing from start to finish they'd be out the door.
Writing SQL and the like in your apps might be fine in a Mickey Mouse environment, but if you want to follow professional IT practices and methodoloies leave the "Im a guru, and can do it all" attitude at the unemployment office...

JR

# re: Stored procedures are bad, m'kay?@ Tuesday, March 02, 2004 7:53 AM

"Frans and the like seem like nothing more than people who are intent only on trying to prove how smart they are, and not applying common sense to a particular situation."
I am not trying to do that, why should I? :) I have developed stored procs for years, don't get me wrong here.

I've however by doing that, seen too much misery in the maintenance department to keep on saying 'stored procedures are great'. They're not. They have serious issues. Until people start acknowledging them, the issues will stay and keep on popping up.

If you'd have read the article correctly, JR, you'd have seen that I wasn't arguing about sql concatenation in an application. I was just arguing about the myths which are used to promote stored procedures.

You don't have to believe me, but in a 15 people project team you can fire at least 3 if you move to dynamic generated (not concatenation) SQL. Reason? No maintenance hell when a stored proc requires an extra parameter and a lot of code has to be altered to make that happen (yes, in two areas at least: DBA and DAL programmers).

You work in a big organisation. So when this has to be applied, a lot of overhead will be created to schedule the change. Are you going to pay for the money the overhead costs? Probably not. However it does cost money (and time). Money-loss which could have been avoided.

Frans Bouma

# re: VB.NET stupidity@ Tuesday, March 02, 2004 11:15 AM

"Cory: I've removed your last comment. YOU type your own comments. If you reply like a 3 year old to my blog I feel free to remove your comment, it's my blog after all. I don't want to go as far as not allowing to comment on VB.NET related blogs but I'm not far from it."

You are completely correct. This is *YOUR* blog. Thank you again for belittling me by referring to me as a 3 year old.

Case in point, my previous post, the one that you removed, was asking for you to remove all of my comments. You remove just that one and refer to me as a 3 year old. No one else reading has any context for why you are saying what you say. For all they know, I could have completely cussed you out and threatened to kill you. Again, they have no context. ALL I SAID WAS REMOVE ALL MY COMMENTS!

This comment has ABSOLULTELY NOTHING to do with your original discussion. I am asking to have you remove all my comments from this blog entry. No one can follow along with the comments since you arbitrarily remove other comments and some of my comments are completely lost in translation because of doing so. Then someone else comes along and comments on my comment and, they are completely correct, I do sound like an idiot because my comment is taken completely out of context; again, because you REMOVED COMMENTS arbitrarily!

Now, since you ARE going to remove this comment, ALL I'm asking is that you be so kind as to remove ALL of my comments from this post.

How is that being like a 3 year old? I do not wish to participate in any discussion where different voices are silenced on a whim. But if you want to put me in that context, then fine, yes, I don't want to play in your sandbox anymore so I'm taking my toys and going home.

If you would like to read further on why I think your comment sensoring is bad, refer to:

http://addressof.com/blog/posts/436.aspx

Again, you have the complete right to do whatever you want on this blog. It's your blog after all. Again, all I'm saying is that I wish to no longer participate in any discussion with you until you STOP the arbitrary censorship. I would suspect that others would be just as angry if they knew that their comments had been removed. How many comments have you removed? I know of at least 3 from this blog entry alone. But who really knows how many... 10, 20, 100, 1000.

So again, please remove all my comments from this thread. I think I've made my case very clear!

Cory Smith

# re: VB.NET stupidity@ Tuesday, March 02, 2004 11:26 AM

What's your problem? I removed *one* comment from you because you behaved like a child IN THAT comment.

I don't recall removing another one from you, if so, it must be a reaction on the removal of that comment.

Why is it so goddamn hard for you to behave normally like all others have done in this thread? You are the only one who seems to think he's personally offended by a blog about a silly thing in the VB.NET compiler.

When I remove a whine-post, you are double offended. You keep on repeating that in every post you make, however you keep on posting here. I clearly wonder why.

If you want to make a point, make the point. I felt personally insulted with your comment, so I removed it. It's my right to do so, I don't have to stick with insults in my comments.

But you have achieved one thing: Next time I blog about VB.NET it will be a no-comment-possible blog.

Frans Bouma

# re: Code theft: Codease uses my LLBLGen 1.x sourcecode as if it is theirs!@ Tuesday, March 02, 2004 12:02 PM

what makes it so bad is that all they have to do to comply with the license is say that the code is based on LLBLGen and then point out the things they added. They did add a few things and the price is low enough, there really is no excuse for this at all.

But don't let a thief and liar change your view on licensing, it doesn't matter what license your code was under (GPL or non-open), a thief is a thief and they don't care which rule they break. Their answer is "we didn't use your code" so that wouldn't change just because your licensing terms changed.

Shannon J Hager

# re: Code theft: Codease uses my LLBLGen 1.x sourcecode as if it is theirs!@ Tuesday, March 02, 2004 12:22 PM

Shannon: Yeah, they had to do so little, it's absurd they didn't do it.

Well, one advantage of the GPL any other license will never have: it has a big group of followers which are very active. Spreading the word of a GPL violation on for example /. will mobilize these groups instantly and it's a bit of power towards the violator you miss when you use another type of license, unfortunately :/

Frans Bouma

# re: VB.NET stupidity@ Tuesday, March 02, 2004 1:24 PM

Ahh come on! Comments are fun. They help us see who it is that complains about certain features. Then we can make our own decisions on the level of intelligence (or whatever you want to call it) of such people.

Michael Giagnocavo

# re: VB.NET stupidity@ Tuesday, March 02, 2004 2:15 PM

Michael, that's my point. As said in response to your comments, my comment could have been taken completely out of context since conversation that I was referring to was partially sensored, thus only allow you to hear part of the conversation. I don't mind being called an idiot, if it's deserved ;-)

As I pointed out, I mistakenly used () instead of []. For that I deserved the comment... no problem with that.

Frans keeps saying my comments are about being personally insulted by him being critical of VB.NET. That is not the case. I originally stated that VB.NET, concerning the brackets around reserved words is consistant throughout the language. Frans still disagrees that it's consistant. So be it. The fact is, it is consistant... the 'Rule'; if you want to use a reserved word within an enum, as a variable name, a method/property name or as a parameter, you must use the brackets around it. It's not as if it's this way for one thing and not another. Therfore, it's consistant. Frans' problem is purley a lack of knowledge in VB.NET and therefore he states that it must be incorrect and "stupid".

When I tell him to "get over it" and learn the language, he takes it personally and deletes the comment. Fine... no problem with that. But when he starts removing comments where the comments that follow are making reference to; thus completely destroying the whole conversation thread... that's what I have a problem with.

His argument is weak. It would be like me pointing out that VB.NET defines arrays by maximum element and C# defines them by the number of elements. Does that add to "VB.NET stupidity"?

By asking to be removed from this thread, it's only from a perspective that I wish to not participate in something that would possibly get deleted (god forbid I hurt poor Frans' feelings) and just add more to the fragmentation that occurs from censorship. Frans', if you are going to make such entries and ask for feedback, then you need to be willing to accept those comments that might hurt your feelings. At no time did I personally attack you, threaten you, nor use any curse words. I only stated that you are whining about something that you shouldn't be whining about.

My general rule for comments is if it is related to the discussion and does not contain a half a dozen curse words (thus possibly offending any reader coming along), then the comment stays. If I put something out there for people to be able to comment upon, then I have to be an adult and accept the critisism that may occur. It's what blogging is about. If you feel you can't accept the critism, then either keep your mouth shut (or do as you said and not allow comments).

Frans wants to have control over people critisizing him, however, he doesn't have a problem in belittling others. He refers to people as three year olds or when discussing VB.NET, the dissing the language designers of as "every 1st year CS student learning the basics of parsing knows how to solve this"; so obviously, they must be idiots since they can't seem to get it right.

So, again, Michael, I completely agree with you. Leave the comments there so that others can make an informed decision. If based on accurate information people want to see me as some sort of idiot, then at least it's something I've done to myself; not something that occured through the tweaking of a thread to make me look one way or another.

BTW, if anyone is interested, I'm more than happy to allow people to call me an idiot and tell me to get over it at my blog... I don't sensor crap on a whim... if I do sensor someone, an explaination is given (only exception is blog spam).

Cory Smith

# re: VB.NET stupidity@ Tuesday, March 02, 2004 2:34 PM

Your last posting here Cory proves my point. I'm not going to defend myself for the gazillionth time on my on blog. In the 15 years I now post messages to usenet newsgroups I learned some various things, among them a rule to not feed the trolls. Your first comment was a troll to get attention. Your last message here is too.

"Frans wants to have control over people critisizing him, however, he doesn't have a problem in belittling others. He refers to people as three year olds or when discussing VB.NET, the dissing the language designers of as "every 1st year CS student learning the basics of parsing knows how to solve this"; so obviously, they must be idiots since they can't seem to get it right. "... says it all.

Case closed. No more comments allowed in VB.NET threads. If you have something to comment on this VB.NET topic, you have your own blog, feel free to rip my arguments apart with your own arguments.

Frans Bouma

# re: What's new in Yukon@ Tuesday, March 02, 2004 7:33 PM

http://dotnetjunkies.com/WebLog/stefandemetz/archive/2004/03/02/8225.aspx

stefan demetz

# re: Code theft: Codease uses my LLBLGen 1.x sourcecode as if it is theirs!@ Tuesday, March 02, 2004 11:05 PM

I'm sure you could do the same with the BSD license, but the fact (sometimes) sad fact is that the physical distance and political differences between you and the thiefs means that the chance of anything ever happening is slim-to-none.

I notice they did remove the blatently stolen article from their site, so they do have some sense, maybe there is hope.

Shannon J Hager

# re: Code theft: Codease uses my LLBLGen 1.x sourcecode as if it is theirs!@ Wednesday, March 03, 2004 6:11 AM

As a last resort I yesterday asked them why they didn't simply obey the license terms and suddenly they were willing to do so. I've mailed what I wanted them to do (adding a single line to the about box, as stated in the license) however haven't heared since. I'll try mailing them later today again.

Frans Bouma

# re: Stored procedures are bad, m'kay?@ Wednesday, March 03, 2004 7:55 PM

Nice article Frans...

But I do have a few concerns...

1) The application has to have a detailed model of the database itself..
2) The assumption that "your" application is the only one hitting the database and thus will be following good techniques for access/manipulation.
3) The assumption that the application programmer be fully aware of the database schema (sort of the same as point 1).
4) Transaction management (again sort of the same as point 1)

On the performance note....I agree here except for one instance.....

And I quote BOL...(About Stored Procedures..)

"If the operation requires a large amount of Transact-SQL code or is performed repetitively, stored procedures can be faster than batches of Transact-SQL code. They are parsed and optimized when they are first executed, and a compiled version of the stored procedure remains in memory cache for later use. This means the stored procedure does not need to be reparsed and reoptimized with each use resulting in much faster execution times."

Of course the plan is cached for any statement and I would like to emphasis that the statement says "CAN BE FASTER" but not "ARE FASTER". A very specific case indeed for suggesting a sproc could be faster than d-sql....

Not much of deal really, but it should be kept in mind if a database routine fits those requirements...

DavidM

# re: Subversion: unbeatable sourcecontrol.@ Wednesday, March 03, 2004 10:35 PM

It only chokes for web projects. Local projects work fine.

Jim Bolla

# re: Code theft: Codease uses my LLBLGen 1.x sourcecode as if it is theirs!@ Thursday, March 04, 2004 1:03 AM

hey, the news is out in Singapore, btw - take a look at this... - http://www.lugs.org.sg/cgi-bin/ezmlm-browse?command=threadindex&list=SlugNet&threadid=aldgkglmacchddmpfjoh

This is the Singapore Linux User Group mailing list, btw.

jf

# re: Code theft: Codease uses my LLBLGen 1.x sourcecode as if it is theirs!@ Thursday, March 04, 2004 4:20 AM

THanks JF, it's also on slashdot now (not the FP, in the ask /. section).

I've mailed them again, see if they respond...

Frans Bouma

# re: Code theft: Codease uses my LLBLGen 1.x sourcecode as if it is theirs!@ Thursday, March 04, 2004 7:40 AM

Honestly I don't think it'd matter if the code was GPL or BSD - companies like this would take the code anyway.

*spits*

s'ok Frans, LLBLGen Pro beats the snot out of 1.2. ;)

Brian Schkerke

# re: Code theft: Codease uses my LLBLGen 1.x sourcecode as if it is theirs!@ Thursday, March 04, 2004 8:28 AM

Brian :)

Yeah, I don't think the license itself will stop them. It's however the crowd of followers who can stop them...

Frans Bouma

# re: Subversion: unbeatable sourcecontrol.@ Thursday, March 04, 2004 9:47 AM

hmmm... the only project i personally tested a .sgvault based state folder was a c# web service app.

about 4 months into the project, we were finally able to start using vault to develop vault.

as memory serves, the vs.net 2002 ide integration component was having problems with the .sgvault state folders. that was enough to warrant an immediate change, so the implementation using .sgvault was never really tested on other projects due to the short life of that naming convention.

jeff clausius

# re: Subversion: unbeatable sourcecontrol.@ Thursday, March 04, 2004 9:55 AM

what I wonder is (haven't tested it as I don't have a webproject under subversion at the moment), is the choking of vs.net only happening when you switch on 'view all files' in solution explorer? Or is this 'always' happening?

Frans Bouma

# re: Subversion: unbeatable sourcecontrol.@ Thursday, March 04, 2004 4:01 PM

frans:

please post your findings.

its been such a long time, my memory of the problem is a little foggy. but i believe it had something to do with iis not allowing sub-folders to start w/ a period or something similar to that.

jeff clausius

# BSD2 license violation solved@ Thursday, March 04, 2004 10:13 PM

TrackBack

# re: So Microsoft, when is VS.NET 2002's service pack released?@ Friday, March 05, 2004 3:32 AM

There's really no sense upgrading from their series of products. I'm very very very much disappointed by their service fucks.

KISSMARX

# re: Code theft: Codease uses my LLBLGen 1.x sourcecode as if it is theirs!@ Friday, March 05, 2004 4:13 AM

It has been solved. They 've updated the application and documentation. :)

Frans Bouma

# re: BSD2 license violation solved@ Friday, March 05, 2004 6:51 AM

Great news! Think the Slashdot entry was the breakthrough?

Paul Gielens

# re: BSD2 license violation solved@ Friday, March 05, 2004 7:00 AM

No idea :) But sure helped :)

Frans Bouma

# Interesting stuff I missed this week@ Friday, March 05, 2004 12:27 PM

TrackBack

# re: BSD2 license violation solved@ Friday, March 05, 2004 1:14 PM

Sweet. After 10 rejected stories, this was the first one I've ever submitted that was accepted.

Shannon J Hager

# Interesting stuff I missed this week@ Friday, March 05, 2004 1:40 PM

TrackBack

# re: BSD2 license violation solved@ Friday, March 05, 2004 2:37 PM

Heh :) I already thought it was you, sir shannon :D ;)

Frans Bouma

# re: Microsoft Support, Round 2!@ Friday, March 05, 2004 4:26 PM

I am looking for the OCM fix for 821758 ( Server.Transfer Does Not Invoke IsPostBack in .NET Framework 1.1). I cannot install the msi hotfix on WIndows Server 2003 (I have VS.NET ENterprise 2003) as it requires a seperate OCM install. Where on earth do I get this?? Any help would be greatly appreciated!! I am totally at a loss as to what to do as I need this asap.. Thanks

Aarti

# O/R mappers and concurrency control@ Saturday, March 06, 2004 1:12 AM

TrackBack

# re: Does SOA require Object-Message mappers? It depends.@ Saturday, March 06, 2004 8:37 AM

I agree.

Udi Dahan - The Software Simplist

# re: Does SOA require Object-Message mappers? It depends.@ Saturday, March 06, 2004 10:59 AM

Interesting thoughts and well presented.

Darrell

# re: Does SOA require Object-Message mappers? It depends.@ Saturday, March 06, 2004 12:22 PM

Thanks for the link to the discussion on the objectspaces newsgroup, very informative! The rest of my response can be found here [1].

[1] http://dotnetjunkies.com/WebLog/seichert/archive/2004/03/06/8578.aspx

Steve

# re: O/R mappers and concurrency control@ Saturday, March 06, 2004 2:13 PM

Good stuff Frans. 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!

Paul Wilson

# Domain models, objects and SOA@ Saturday, March 06, 2004 5:44 PM

TrackBack

# Optimistic Concurrency@ Saturday, March 06, 2004 6:08 PM

TrackBack

# re: O/R mappers and concurrency control@ Saturday, March 06, 2004 11:12 PM

How do you solve the case where you want to do an optimist lock in a row that you will be just reading and not updating?

For example, I read the product price but I don't update the product table. When I save the order, I want to make sure the product has the same price as it had when I read it.

Peter

# re: O/R mappers and concurrency control@ Sunday, March 07, 2004 6:14 AM

Peter: you're not able to do that, unless you're placing an exclusive lock on the product row in the products table. However, even then, this can be overruled by hints like 'NOLOCK' on sqlserver for example.

It will also really hurt performance, as it will block any readers of the product table during your action. (On Sqlserver).

If you really want to prevent that, you have to schedule logic in your application so it can't update a product row if the product row is used in some logic in the application. THis is called functionality locking, see my blog about that (linked in this blog) for more details.

Frans Bouma

# SOA and the domain model@ Sunday, March 07, 2004 11:14 AM

TrackBack

# re: O/R mappers and concurrency control@ Sunday, March 07, 2004 2:47 PM

Frans,

No, I can perform the same kind of optimistic locking. I read the priduct price when I read the order, and when I update the order I check if the product price is the same.

The thing is that is an optimistic lock in a table that you are not updating.

Peter

# re: O/R mappers and concurrency control@ Sunday, March 07, 2004 4:26 PM

You can't 'lock' anything. The only way you can achieve it is by an extra FROM clause and WHERE predicates which filter on the product price row (or subquery on oracle). This can become pretty intensive SQL.

Frans Bouma

# re: O/R mappers and concurrency control@ Sunday, March 07, 2004 7:07 PM

I don't get what you mean.

I could do a select (updlock) or a select with a serizable isolation level in the Product when updating, check the old value with the new one, and then continue with the usual optimistic locking process. That's what I would do if I need that to happen automatically without support from the O/R mapper.


Peter

# re: O/R mappers and concurrency control@ Monday, March 08, 2004 3:50 AM

An update lock or another lock will always be circumventable through the usage of 'NOLOCK' if you want. You'd also still lock the product row which will block readers if they don't use NOLOCK.

As soon as you bring data outside the RDBMS (in this case the product price) and use that data to write other data back into the database, you can have differences between the original data read and the values of the same fields at the time of writing of the order. (product price may have changed).

Does this matter? No. The reason for this is that you have to read the data first, do some things with it (probably put it in a gui) and some time later the price data is used for an insert somewhere else (order). During that time, the price row is locked in your situation. This hurts performance tremendously.

It also causes weird logic: what happens when the order is written and the price has changed? Does the order fail? The customer has agreed to buy it on the price specified. You can't say: "Oh, erm.. the price is higher now". In the worst case, the customer has to decide if he wants to order for the new price, and finds it too high perhaps and leaves: the customer has spend some time to fill in the order which is lost.

Locking rows during a long transaction (with user intervention) is not an option as this will hurt performance.

Frans Bouma

# re: O/R mappers and concurrency control@ Monday, March 08, 2004 11:54 AM

Frans,

You don't need to keep anything locked with user intervention.

If you have Flower's PoEAA at hand, check the 'Optimistic Offline Lock' section. This case is explained in page 419, and it's refered as an 'inconsistent read'. Fowler's example is better than the 'product price' one.

Regarding how to do when you detect a conflict, this is no different than a usual optimistic concurrency error.

The only difference is that when I want to commit my whole transaction, in addition of an update statement with a where that looks for the old values or that compares a version column, I also need to do a select (updlock) just before executing the update, to check if the product price is still the same. Then I do the update and then I commit (if everything goes well).


Peter

# re: Does SOA require Object-Message mappers? It depends.@ Monday, March 08, 2004 3:57 PM

Frans, Frans, Frans. I have to admit I didn't expect that this would be your conclusion.
:-)

To me (if I skip the ordinary "it depends")it's not one or the other most often, it's a combination. I mean manager model and domain model. Unfortunately I'm so swamped with work that I don't have time to blog right now. I'll get back as soon as I can.
:-)

Best Regards,
Jimmy
www.jnsk.se/weblog/
###

Jimmy Nilsson

# re: Does SOA require Object-Message mappers? It depends.@ Monday, March 08, 2004 5:42 PM

Jimmy :) Sorry to dissapoint you ;)

I find it a bit weird to combine domain model and manager model, as domain model (as I understand it) requires that BL logic is placed inside 'domain objects' which thus means that the BL logic is not placed inside manager objects. I don't see how these can co-op very well...

Frans Bouma

# re: Does SOA require Object-Message mappers? It depends.@ Monday, March 08, 2004 6:43 PM

Well, you didn't disappoint me, just surprise me.
:-)

I like what Eric Evans writes about this in his book called Domain-Driven Design. He talks about services (both within the Domain Layer and the Application Layer) and the entities and value objects. I know what you think about the term "entities".
;-)

As I understand Eric, different kinds of behavior fits best at different places. Manager-like behavior shouldn't be "forced" into the entities.

Heck, this is a huge (and interesting) topic and we could go on forever. What I mostly reacted on was that you sounded as if using a Domain Model wasn't needed or even a good idea with SOA. If it's a complex domain and you want the abstraction, I think a Domain Model is a good choice here. And a tool like your LLBLGen helps a lot to achieve productivity of course!
;-)

Best Regards,
Jimmy
www.jnsk.se/weblog/
###

Jimmy Nilsson

# re: .NET Reality check, my €0.02@ Tuesday, March 09, 2004 3:13 AM

I have a solution for the WindowsFormsParkingWindow issue in my blog.

http://dotnet.org.za/johannds/archive/2004/03/08/650.aspx

Johann de Swardt

# re: Does SOA require Object-Message mappers? It depends.@ Tuesday, March 09, 2004 4:39 AM

It might surprise you, but I don't think a domain model is a good idea in almost any situation. :)

It's not a technical issue, it's a more abstract issue: I've learned during the years that one thing is THE most important thing of a piece of software and that's maintainability. What I've learned about maintainability is that it's KEY for maintainability to have a very strong connection between functional design and your 'functionality described in a programming language' as I like to describe it: your sourcecode.

The more easier it is to project a functional design onto sourcecode, the stronger the connection is (and vice versa!). A domain model in most cases will not be able to give you that strong connection because it is a result of a translation (Evans has written about that problem too). Most complex systems still try to describe procedural processes, try to automate what's procedural. It's best to solve these problems with a system which therefore stays close to the procedural process description it has to describe. A domain model with process logic scattered all over the place is therefore not a wise solution. At least that's my opinion :)

Frans Bouma

# re: Does SOA require Object-Message mappers? It depends.@ Tuesday, March 09, 2004 6:43 AM

I follow your reasoning and I see merits in it. But, I belong to the Fowler followers still.
:-)

The reason I got surprised was that you don't think Domain Model is useful. Combine that with that you have built one of the best OR Mappers for .NET and that you recently said that you was going to write positive things about OR Mapping as often as you could.
:-)

Best Regards,
Jimmy
www.jnsk.se/weblog/
###

Jimmy Nilsson

# re: Does SOA require Object-Message mappers? It depends.@ Tuesday, March 09, 2004 6:56 AM

Heh :) I see your confusion. Let me elaborate on this :)

I see O/R mapping as something different than the application of the Domain Model. The reason for that is that I refer to the 'entity' concept as the corner stone of the data-centric core of my application. Not Fowler's Entity, but Chen's Entity. To apply O/R mapping techniques, you can work with entities in an OO environment with ease: the data with little behaviour.

By using entity objects, it's easier for manager style BL classes to work with data, because they can do that in a typed way: by directly refering to an entity object instead of a row in a datatable. Because this has sometimes limitations (work with a list of orders with customer names for example: you need a join and a subset of the fields resulting from that join) I added 'typed lists', which are 'views' defined on entities.

I thus see it more separated: entity related logic which is bigger than very simple field-validators or simple entity validators (is order date <= shipping date?) should be placed outside the entity object itself as it most of the time spans more than 1 entity (and is thus not rightfully placable in an entity). However, by doing so doesn't mean O/R mapping is not useful, on the contrary :) The logic is simply placed outside of the entity object, grouped together in manager classes which mimic procedural (sub)processes and which consume the entity objects. Consuming entities wouldn't have been possible without O/R mapping :)

I find it sad that O/R mapping is connected very tightly to the 'domain model' by some people as it is a technique which stands on its own. By tying it to 'domain model' as a part of the domain model, people who do not grasp the domain model or don't want to use it, will probably also assume O/R mapping is not for them, while that conclusion is not a correct one :)

Therefore I hope that more and more people will simply discuss the technique of O/R mapping NOT related to 'domains' but solely as a technique to transfer relational model into an object model or vice versa and that it can benefit your own logic. HOW you then implement your own logic (domain model or manager model or even different) is up to you :)

Frans Bouma

# re: Does SOA require Object-Message mappers? It depends.@ Tuesday, March 09, 2004 9:20 AM

Ah, thanks for clearing that up for me! Now I understand you (again).
:-)

Honestly, I think this is the first time I've heard about OR Mapping in another context than when the Domain Model is used. Not that they *must* be connected of course, I just hope it explains why I didn't understand you at first. Interesting...!

Best Regards,
Jimmy
www.jnsk.se/weblog/
###

Jimmy Nilsson

# re: Does SOA require Object-Message mappers? It depends.@ Tuesday, March 09, 2004 3:40 PM

Hi Frans,

The Domain Model has it's strength in attaching behaviour to the data and taking advantage of OO goodies like polymorphism and the "push" model. The "Manager Model" has severe limitations in this aspect and tends to encourage parallel method overloading in the Manager classes and inheritance in the data entities + interrogation of the properties of the data entity classes all the time. In fact you can look it this way - the domain classes "happen to have" some (not all) of their data(attributes) persisted in the database, but that's not the most important thing.

Best regards,
Deyan

Deyan Petrov

# re: Does SOA require Object-Message mappers? It depends.@ Tuesday, March 09, 2004 4:40 PM

Hi Deyan and Frans,

For what it's worth, I think I've seen something like five very different ways of dealing with the Domain Model during the last few months. Half a year ago, I thought I understood how it was used "all the time"...
:-)

Best Regards,
Jimmy
www.jnsk.se/weblog/
###

Jimmy Nilsson

# re: Subversion: unbeatable sourcecontrol.@ Wednesday, March 10, 2004 12:01 PM

Tortoise has a client that works around the .svn problem...

http://tortoisesvn.tigris.org/download.html

Dennis

# re: O/R mappers and concurrency control@ Wednesday, March 10, 2004 2:10 PM

> However, there are occasions where low level concurrency control can be helpful: for example if you don't care if someone looses his/her work and you just care about the consistent state of the database, or in situations where you for example want to prevent deletion of data after some period of time (user opens edit screen, goes away for lunch, comes back, deletes data, however the state of the record has been changed, the delete should not happen).

C’mon Frans I know you can do better. After reading this hard to read sentence :) This is a typical scenario I find myself in while writing factory automation software. 99.9% of the time I only care about detecting the concurrency violation and retry by processing and offering the whole load of data again and again, and again.

Isn’t it so that a typical business application would profit from a “context based concurrency strategy”. Your IConcurrencyPredicateFactory isn’t flexible in case a single entity would “vote” and participate in multiple object hierarchies. Or more then one use-case so to speak, each offered as a unit of work.

Paul Gielens

# Action in the Code Generation World@ Thursday, March 11, 2004 12:12 AM

Code Generation Network: &quot;.NET developers are just starting to realize the abstraction and productivity benefits of code generation. We have interviews with the industry leaders developing new cutting edge tools for .NET code generation, as well as books and articles...

TrackBack

# Action in the Code Generation World@ Thursday, March 11, 2004 12:12 AM

Code Generation Network: &quot;.NET developers are just starting to realize the abstraction and productivity benefits of code generation. We have interviews with the industry leaders developing new cutting edge tools for .NET code generation, as well as books and articles...

TrackBack

# Market Makers, Microsoft, and Product Delays@ Thursday, March 11, 2004 3:37 AM

TrackBack

# To MS: Listen to your Customers@ Thursday, March 11, 2004 5:50 AM

TrackBack

# To MS: Listen to your Customers@ Thursday, March 11, 2004 5:55 AM

TrackBack

# Wondering about negative people@ Thursday, March 11, 2004 6:08 AM

TrackBack

# Whidbey and Yukon@ Thursday, March 11, 2004 6:14 AM

TrackBack

# Whidbey and Yukon@ Thursday, March 11, 2004 6:15 AM

TrackBack

# re: Yukon and Whidbey: a marriage not worth fixing@ Thursday, March 11, 2004 6:18 AM

VERY well said.

While UYKON is "nice to have", I would go very far to be able to work with ASP.NET 2.0 and generics NOW. MS really tries to synchronize way too many different things into one release date at the moment - this is really not good.

Thomas Tomiczek

# re: Yukon and Whidbey: a marriage not worth fixing@ Thursday, March 11, 2004 6:29 AM

Same here!!!!

I have been reading about all the *CORE* updates in .Net 2.0 and wishing I had them today.....

while I agree that the next sql server rev is a very important milestone I think I need the VS and .Net updates first, let SQL server slide
it's not like I can up and swap that real fast anyway.

denny

# Give Me Whidbey ASAP -- Screw Yukon@ Thursday, March 11, 2004 6:29 AM

TrackBack

# re: O/R mappers and concurrency control@ Thursday, March 11, 2004 6:35 AM

"C’mon Frans I know you can do better. After reading this hard to read sentence :) This is a typical scenario I find myself in while writing factory automation software. 99.9% of the time I only care about detecting the concurrency violation and retry by processing and offering the whole load of data again and again, and again."
But in the end you have to decide to quit processing it. Low level concurrency is not a solution. It's a last resort if your high-order concurrency scheme failed.

"Isn’t it so that a typical business application would profit from a “context based concurrency strategy”. Your IConcurrencyPredicateFactory isn’t flexible in case a single entity would “vote” and participate in multiple object hierarchies. Or more then one use-case so to speak, each offered as a unit of work."
Why is the most fine grained solution not flexible enough? :) The implementation of the interface is up to the developer, so if the developer wants to add events, references to other objects, it's possible. So the decision the concurrency predicate factory has to make can be based on whatever scenario you can think of. It also might simply fire an event which is caught by an external service object which has a clear overview what to do.

If you want higher level concurrency functionality, it is not wise to implement that on a low level, so it's in all cases more wise to simply add logic which prevents low level concurrency violations pop up like multi-edits of the same row.

Frans Bouma

# re: Yukon and Whidbey: a marriage not worth fixing@ Thursday, March 11, 2004 6:36 AM


I guess this is one of the flaws of letting people know what's coming. Given the amount of info available on Whidbey they can't blame anyone if we want it soon, because people are given the impression that it's nearly finished ...

Maybe developers are no different than customers after all ;)

CC

# re: Yukon and Whidbey: a marriage not worth fixing@ Thursday, March 11, 2004 6:44 AM

CC: developers ARE customers :)

If I look at the whidbey state, I can only conclude that they definitely would have made a deadline before the end of the year. I'm not sure what this will do to the featureset of whidbey: will there be more features added now there is more time, or will there simply be more bugfixing time...

Either way: I find it worrying that Yukon is slipping and slipping away. There must be something seriously wrong.

One thing to blame is perhaps indeed the hype about what's coming. However MS has to admit that their support for VS.NET and .NET 1.1 is pretty bad: no bugfixes have been released whatsoever. Perhaps that's also why people wanted whidbey so bad: it offers solutions to trouble with vs.net 2003. Especially in the ASP.NET department as Thomas said. Also in the databinding department with the new .NET features to bind object hierarchies to controls more easier is very very nice, however far far away at the moment...

Frans Bouma

# re: Yukon and Whidbey: a marriage not worth fixing@ Thursday, March 11, 2004 6:48 AM

.NET 2.0 is ready, Whidbey is ready, but just because of Yukon, Microsot don't release them. What if I don't use SQL Server? Better, I'm not too sure SQL Server 2000 clients will jump straight to Yukon...
This is purely marketing, and it slows down the technological improvements.

Fabrice

# re: Yukon and Whidbey: a marriage not worth fixing@ Thursday, March 11, 2004 6:58 AM

Hi, I agree totally with you. I would much rather they released Whidbey this year. I thought the only technical connection between Yukon and Whidbey was the new System.Data.sqlServer namespace. I would suggest leave this out until Yukon is ready and ship the rest. The are a number of ASP.NET 2 features that are really useful and there is no point in developing them yourselves if Whidbey is just round the corner. As the date keep slipping it is making it harder to sell .Net to customers. Telling them I need to write all this code now but I know MS will make it obsolete with Whidbey is not an easy sell.

Martin Spedding

# re: Yukon and Whidbey: a marriage not worth fixing@ Thursday, March 11, 2004 7:00 AM

What I also find weird is that NONE of the MS bloggers has mentioned a single word on this. Did they simply find it not important or is it a corporate policy? I find it really weird as it will cause a major problem for a lot of developers, because as you said it so well Martin: it will become a hard sell in the long run.

Frans Bouma

# re: Yukon and Whidbey: a marriage not worth fixing@ Thursday, March 11, 2004 7:06 AM


I am not surprised. Typical mass scale FUD from the Redmond thieves always have a downturn.

anon

# I say 'Bulle-Scheisse!' to these Delays@ Thursday, March 11, 2004 7:23 AM

TrackBack

# re: Yukon and Whidbey: a marriage not worth fixing@ Thursday, March 11, 2004 7:25 AM

in a perfect world, I would agree with you, Frans. However, MS doesn't exist in that world.

First off, Whidbey isn't even in BETA yet. You guys are talking about it like it is finished and sitting around waiting for Yukon, which is far from the truth. When Whidbey hits beta 1, the talk above still won't be true nor appropriate.

Second, VS2002 has been out a little over 2 years and you see how bad off it is. Releasing VS2005 early is going to put it in the same position. Sure, there will be new features and some bugs in VS2003 will be gone but there will be a whole new crop of bugs in the new features and you'll be in the exact same position you're in now: using a product that has potential for greatness. If they take the time to FINISH Whidbey before they release it, we'll all be better off.

Shannon J Hager

# The Yukon and Whidbey slip: Take a deep breath and count to 10@ Thursday, March 11, 2004 7:43 AM

TrackBack

# re: Yukon and Whidbey: a marriage not worth fixing@ Thursday, March 11, 2004 7:55 AM

Shannon: I see your point, however Whidbey is not in a shabby state at the moment. remember, the PDC build was from august/september last year. I'm pretty confident that they would have made the Q4 2004 deadline.

I agree that rushing the stuff will do no good, but delaying it will neither: what to do with teh time? Add features which were cut because of the timeframe for 2004 ? Or re-test everything?

I think a release when it is done is best: let's say it is done at the end of 2004. Release it, a LOT of people will start using it and after 3 months fix the bugs which weren't ironed out during beta testing. Beta-testing might sound great but not a lot of people do it, not with production type of work.

However fixing teh bugs after a release is something they haven't done since vs.net 2002 has been released...

Frans Bouma

# re: Yukon and Whidbey: a marriage not worth fixing@ Thursday, March 11, 2004 8:00 AM

:-) "Redmond Thieves" is a patented trademark "anon".

senkwe

# All these people (and probably a lot more) are right @ Thursday, March 11, 2004 8:23 AM

TrackBack

# The Yukon and Whidbey slip: Take a deep breath and count to 10@ Thursday, March 11, 2004 8:29 AM

TrackBack

# re: Yukon and Whidbey: a marriage not worth fixing@ Thursday, March 11, 2004 8:48 AM

I agree Frans. Give us Whidbey ASAP! If there are a few features that depend on Yukon, that can't be immediately used then so be it.

Paul Wilson

# re: Yukon and Whidbey: a marriage not worth fixing@ Thursday, March 11, 2004 8:50 AM

It should be that when yukon comes out, it installs or has a separate installer for the tools to develop software with visual studio.net. So people who use Oracle are not waiting for whidbey which will contain all nice tools they'll never use and which are only used by yukon customers, the ones which can use that separate installer anyway.

Frans Bouma

# re: Yukon and Whidbey: a marriage not worth fixing@ Thursday, March 11, 2004 12:08 PM

I'm speechless.

Marcus

# Re: Does SOA require Object-Message mappers? It depends.@ Thursday, March 11, 2004 12:25 PM

Hi Frans!

About combining the Manager approach with the Domain Model approach:

Say that you have a EmployeeManager.RaiseSalary(employee emp, double percent) method.

Now, either you can put the actual business logic in this method, or you can create another method on the employee object, called Employee.RaiseSalary(double percent) and just forward the call to that method of the passed along employee object. Or - you can mix.

In the extreme case, when all the BL is in the employee object, your Manager method would become empty and arguably redundant, Like this:

EmployeeManager {
public void RaiseSalary(employee emp, double percent) {
emp.RaiseSalary(percent)
}}

In this case, why would you bother calling EmployeeManager.RaiseSalary()? Why not call employee.RaiseSalary directly instead?

But what if the story went like this? You started out by creating the EmployeeManager.RaiseSalary method, putting all the BL in it. It worked swell. Clients started calling the method and life was a dream. Then one day, becuase you are such a neatness freak, you decided to refactor in such a way that you created an employee.RaiseSalary method, moved the BL to that method and modified your Manager method into the straight delegation in the example above.

Everything works as before, clients can still call your service, sweet.

Following this logic you might wind up with a Manager layer that is little more than a facade. But on the other hand, you could add aspects to the Manager methods that wouldn't necessarily fit on the domainb objetcs themselves: For instance, every time a Customer is deleted by a low-level employee, an Email should be sent to the Big Boss so he can verify the action. I don't want to put that email sending logic into the Emlpoyee.Delete method, because it should only be sent under a very specific use-case, but not when a customer is deleted during other use cases.

So, IMO, a good way of combining the Manager and Domain Object models is by implementing service-like methods in the Manager/Service layer that correspond to use-cases, and then to take out common functionality from different use-cases and put it in the domain objects to be called from the use-cases/services in the Manager/Service layer.

On the third hand: Of couse you don't /have/ to put the factored-out common BL on the domain objects. You might as well put that as well into Manager/Service classes. But the point is, you are /free/ to put this code on the domain objects without breaking the beneficial Manager/Service model.

So, what's the arguments for where to put the freely disposable factored-out and reusable between use-cases code?

Well, in short I find these arguments to carry weight: Some people find it immensly clarifying to distribute a lot of the BL code over the Domain Model, and I suppose that if you find the application much easier to code this way, then go for it. Others (I am often one of them) think that there is a great benefit in keeping the BL separated out into a layer of its own (the Manager/Service layer) where it can be easily found and where it can be modified and recompiled without having to recompile the Domain Model (or whatever you want to call a "Domain Model" stripped of BL methods)

/Mats


mats.helander@pragmatier.com

# re: Yukon and Whidbey: a marriage not worth fixing@ Thursday, March 11, 2004 12:44 PM

Fix the bugs in the current version! Frans, I know you've blogged on this before.

Right now I'm still pushing clients to go from NT4 to Win2k, from nothing to .Net Framework 1.1, and from SQLServer 7 to 2000.

I'm going to be dealing with today's technology today, and for years to come. I also suspect that new versions of VS will fix some bugs (not all, as you have noted in regards to VS.Net 2002, Frans), and introduce new bugs, so what's the point in hanging out for it?

Robert

# Free Whidbey!@ Thursday, March 11, 2004 12:58 PM

TrackBack

# re: O/R mappers and concurrency control@ Thursday, March 11, 2004 1:36 PM

Ok I didn't realize this level of concurrency handling is_intended to be implemented behind your IConcurrencyPredicateFactory interface. Perhaps you should add a comment on your LLBLGen Pro product page... didn't find anything about it in the public section.

Thnx for commenting it further.

Paul Gielens

# re: Stored procedures are bad, m'kay?@ Thursday, March 11, 2004 2:04 PM

I think you are missing the point. Stored Procedures and Dynamic Queries should not be used as sole stand alone implementations. They should be used in conjuction with one another period.

Luther Craddock

# re: Yukon and Whidbey: a marriage not worth fixing@ Thursday, March 11, 2004 3:12 PM

I wonder if there are a lot of existing ASP.NET developers waiting for ASP.NET 2.0.
I wonder if ASP.NET 1.1 code will be compatible with ASP.NET 2.0, or, if you'll have to port the existing code to ASP.NET 2.0.
I've VS.NET Whidbey on my computer installed, and ASP.NET 2.0 looks very different from ASP.NET 1.1.

For now, ASP.NET 1.1 code does not run with aspnet_isapi 2.0...

whoami

# re: Yukon and Whidbey: a marriage not worth fixing@ Thursday, March 11, 2004 5:56 PM

Yes. I'm waiting for ASP.Net 2.0. I want to use it on our Intranet. And, I don't want to write all these neat features and then rip the application apart after the release.

I'm also looking forward to Generics. It will make one component that I developed a *LOT* smaller. It's a huge library that is generated from definition files. And, it ends up creating a few thousand classes. Many of them could be consolidated into a single class (collections). I've eschewed a lot of inheritance for simplicity (this library is responsible for parsing large data files that get sent to us by other insurance companies, I wanted to keep each class small so that the running memory footprint could be kept under control).

Those two applications are just waiting for 2.0 to come out. Yeah, I'll be working on them when the framework comes out in beta.

As an extra note, I would've ranted about how the framework is done. Why can't we just get that and start developing with it? Is VS a requirement for the framework? No. But, we get to wait for Visual Studio to go final before we get the framework. That's what I don't consider fair.

-Martin

MartinJ

# re: Yukon and Whidbey: a marriage not worth fixing@ Thursday, March 11, 2004 7:52 PM

"Whidbey is not in a shabby state at the moment"

I have seen no evidence that your statement is true, Frans. I just returned from DevDays and I saw 3 different builds of Whidbey, all alpha, none with the full functionality, none stable enough to call "beta". Only 1 had Whitehorse. Only 1 had the VB.Net Class designer. The words "this is only an alpha" were repeated over and over and over by both presenters using Whidbey.

Yes, the PDC Alpha build is from August, the same time as the Yukon Beta PDC refresh. But that build is the last version of Yukon I've seen so I can't say how much progress has been made in Yukon, but the newer builds of Whidbey I saw today were impressive as far as the intended feature set but were still too shabby for your post to hold water.

NOTE: I do not have any Whidbey build other than 30703.27 and I do not know anyone at MS who knows the true state of things, so I could be wrong, but I have yet to hear/see anyone with any evidence that Whidbey is at the beta level yet. Someone please correct me if I am wrong.

Shannon J Hager

# re: Yukon and Whidbey: a marriage not worth fixing@ Friday, March 12, 2004 4:06 AM

(I posted this comment also in Jeff's blog as reply on your comment there which was similar to this one ;))

Shannon: Within a few weeks the alpha tester group gets new bits of whidbey, we'll see what's true / false of what's working and what's not.

It's definitely not feature complete as new features are still debated in the alpha tester forums, but it gets close. Being not-feature complete means that it is not beta yet. Beta 'quality' means nothing btw. Beta means: feature complete, let the testing begin.

Whitehorse is an add-on to vs.net, not a main part. Whitehorse was barely runnable in the first alpha we saw. But it's March, not October.

No matter what, the pushback of the release date creates a big problem. ASP.NET development IS broken in vs.net 2003, the HTML editor is horrible. It might sound weird, but ASP.NET is the major .NET feature which makes people use .NET in the first place: a lot of websites currently using ASP and for example Oracle are ported to ASP.NET.

If developers have to wait for more than a year before a decent ASP.NET editor is released, what to do? And don't expect a 3rd party editor which solves the problems: any 3rd party editor developer knows that ASP.NET 2.0 totally changes the picture.

As an O/R mapper vendor I should be glad Objectspaces is pushed back for more than a year. In a wicked way I am, but just a little, and for the most part I'm not all that happy with this delay. .NET 2.0 solves a lot of problems and can bring a lot of good things I really need but now I have to wait for a long period of time before I can start updating the code with f.e. generics, true IXmlSerializable support, design time databinding of my objects etc.

-------
So within a few weeks we'll know if whidbey is almost feature complete or not. personally I didn't expect a beta before June, when Teched europe is held, however if it goes beta in june, it can RTM before the end of the year.

Frans Bouma

# re: Yukon and Whidbey: a marriage not worth fixing@ Friday, March 12, 2004 4:08 AM

"As an extra note, I would've ranted about how the framework is done. Why can't we just get that and start developing with it? Is VS a requirement for the framework? No. But, we get to wait for Visual Studio to go final before we get the framework. That's what I don't consider fair. "
You have to use vs.net 2005 or notepad, because you can't compile code for .NET 2.0 from vs.net 2003

Frans Bouma

# Vote: Manager Model, Domain Model, or Both?@ Friday, March 12, 2004 4:30 AM

Vote: Manager Model, Domain Model, or Both?

TrackBack

# re: Yukon and Whidbey: a marriage not worth fixing@ Friday, March 12, 2004 3:15 PM

::You have to use vs.net 2005 or notepad,
::because you can't compile code for .NET 2.0
::from vs.net

I bet this could be fixed by someone at MS in less than a week. Compilation is easy, debugging is the problem - and the designers.

Thomas Tomiczek

# re: It's not Visual SourceSafe's v^Hfault@ Friday, March 12, 2004 3:21 PM

I'm using VSS right now.

I'm using it to view some files across a slow link and it is abysmally slow.

Even the fucking UI slows to a fucking crawl.

While I am waiting between clicks I searched google and found your idiotic shit article.

Mr. Bouma, you are a fucking moron and I sincerely hope you are sterile and if you have mated already I hope for the rest of the world that your idiot offspring die in an accident. You ignorant piece of dog shit.

VSS sucks

# re: Yukon and Whidbey: a marriage not worth fixing@ Friday, March 12, 2004 3:25 PM

... and the CLR used by VS.NET itself. You also run into this issue if you want to compile against 1.0 from VS.NET 2003 and you solely reference 1.0 assemblies in your solution: it gives wacky errors

Frans Bouma

# re: Yukon and Whidbey: a marriage not worth fixing@ Friday, March 12, 2004 3:26 PM

"It might sound weird, but ASP.NET is the major .NET feature which makes people use .NET in the first place"

Not weird at all, why would it be? ASP.NET is how I came to .net (and VB.NET). What seems weird is that you make it seems like ASP.NET doesn't exist right now.

And I think it is weird that a beta in June will mean a RTM by December. Sure, it is possible, but I would recommend against it for the reasons I stated in my post the day the news was sent: MS releases their products too early. You know this, you've been complaining about this for years and still are. Beta in June and RTM in December means the first REAL release will be SP1. Microsoft needs to get out of that habit. Especially for tools like this where the chances of them EVER fixing the problems seem to be slim.

I also disagree with your (and MS's, if that's where you got it) assertion that Beta 1 will be feature complete. That just isn't the way MS works. I'm not saying it isn't the way they work now and in the future (that would be nice) but I have yet to see a Beta 1 from MS where this was the case.

And, as a total aside, I have yet to see anyone say that Yukon is holding up Whidbey and not that Whidbey is holding up Yukon. The only quote in the eWeek article simply said that the 2 were going to be released at the same time.

Shannon J Hager

# Whidbey = Visual Studio 2005@ Friday, March 12, 2004 11:37 PM

TrackBack

# Visual Studio 2005 = @ Friday, March 12, 2004 11:37 PM

TrackBack

# A man who knows it's trade@ Saturday, March 13, 2004 5:49 AM

TrackBack

# Whidbey delay, hotfixes, and PSS@ Saturday, March 13, 2004 8:08 AM

So there's obviously been a TON of blogging in the last week over Microsoft's decision to delay Whidbey until 2005. Dan...

TrackBack

# re: VS.NET Service packs and why they're not here@ Saturday, March 13, 2004 8:13 AM

Why VS6.0 has 5 Service Packs (the 6th is quite ready) and VS2002/2003 have no SP at all?
I think that there are some problems with the past (and perhaps current) .NET strategy...

Lorenzo Barbieri

# re: VS.NET Service packs and why they're not here@ Saturday, March 13, 2004 8:24 AM

Totally aggree Frans...some of the ASP.NET 1.1 June 2003 hotfix changes aren't even just 'cosmetic' changes - there's accessibility changes to DataGrid, changes to session state which actually make SQL Session state work properly, just a ton of them (see http://support.microsoft.com/default.aspx?kbid=821156). Now, this was last June why haven't these been made avaialble as a public download? THis is especially true when you look at some of the patches for MS products which use ASP.NET e.g., CMS 2002 - their service packs INCLUDE THESE CHANGES! If they're stable enough for those - how can MS justify sayhing they're not stable enough for the general public?

Scott Galloway

# re: Yukon and Whidbey: a marriage not worth fixing@ Saturday, March 13, 2004 12:52 PM

I posted this in Dan's blog:

"You know, I just want one thing fixed in VS.NET 2003 if I have to wait for Whidbey. I wish that changing from html view to design view and back to html view wouldn't destroy all the careful formatting I worked so diligently to do. I mean, don't you think it's a little strange to tout the fact that whidbey doesn't mess up your code, as a feature? I would love to be able to switch to design view to double click a button to help me build events quicker, but doing so requires me to make a copy of my html code so I can replace the broken code that changing to design view creates. Doesn't that sound like a bug? Shouldn't developers who use VS.NET 2003 expect that bug to be fixed? Is that too much to ask?"

Chad Thiele

# re: VS.NET Service packs and why they're not here@ Saturday, March 13, 2004 3:17 PM


I'm not the right person to discuss this as I don't work in support. Don't consider me the messenger, I'm not trying to represent Microsoft support.

I copy/pasted relevant parts below from a response I gave you on my blog
****

My post wasn't supposed to be meant as *the* explanation for why we don't have service packs. I don't know the answer to this, I don't work for support. I don't know the answer to the servicing questions and I'm not trying to make excuses, I was simply trying to help. There are plenty of people that aren't even aware of what hotfixes are available on our support web site.

My point *was* that VS 2005 has quite a bit of work that still needs to be done before it will ship.

I asked you to contact me directly if you had a specific problem and I told you I would try and help. I still haven't received email from you on what specific issues you have. Help me help you :) I can't promise anything, but I'll try my best...


**Warning: I am not a Support person**
WRT ISVs - You do need to make the distinction between VS.NET and .NET framework service packs as there is nothing blocking an ISV from applying hotfixes to developer tools in their organization. The other point on multiple service packs is that we got flack from customers saying that we were releasing too many service packs for Windows and that their customers didn't want to patch all of their systems once every six months, let alone once every two months. ISVs complained that multiple service packs for Win 2K increased their test matrix and they found themselves requiring a specific version of a service pack, say SP3 for their customers to install the software. Once ISVs required a specific version of a service pack, that createe a barrier for customers/organizations who are not ready to upgrade to a specific version of a service pack. In large organizations, a service pack is tested quite thoroughly before it is rolled out on all machines domain administrators lock down machines so that users can't patch unapproved machines. The pain that we've heard from ISVs is that we are forcing them to choose - create a release that works with a specific service pack and lose customers that can't/won't/haven't upgraded to that SP, or create multiple releases that work with multiple service packs and the additional dev/test/QA/support work this entails. I don't know the right answer to this situation....

Dan Fernandez

# re: VS.NET Service packs and why they're not here@ Saturday, March 13, 2004 3:31 PM

>>"Why VS6.0 has 5 Service Packs (the 6th is quite ready) and VS2002/2003 have no SP at all?
"

Lorenzo,

I suppose a more relative question is, how many services packs were released for VS6.0 in it's first 12 months?

Simon Stewart

# re: Visual Studio 2005 = @ Saturday, March 13, 2004 11:36 PM

TrackBack

# re: O/R mappers and concurrency control@ Sunday, March 14, 2004 7:09 AM

Paul: the interface is meant to supply a filter object which should limit the query executed. So if your tables have a timestamp column, you can produce a filter which filters on a particular timestamp value. This predicate (the filter object is a predicate object) is then added with AND to the WHERE clause of the query. Which then thus fails if the timestamp value isn't met.

However if you want to test on other things, you can. It's up to you :)

Your point about the info is a good one. We'll make the documentation available online for browsing next week. (as it is explained in there).

Frans Bouma

# re: Does SOA require Object-Message mappers? It depends.@ Sunday, March 14, 2004 7:30 AM

Good post, Mats! :)

Not as a surprise, I agree with the far most of it :)

Frans Bouma

# re: Yukon and Whidbey: a marriage not worth fixing@ Monday, March 15, 2004 2:50 AM

This pretty much explains the troubles.

MS has decided that VS.NET 2002 / 2003 are "done" and is now delaying whidbey, although 2002 / 2003 are mediocre at best having some SEVERE issues.

I don't get it. They should get their act together and fix the whole thing. I want generics, I want to be able to replace VS.NET versions - at least limited - and I do NOT want a total tie in with yukon.

Thomas Tomiczek

# re: Stored procedures are bad, m'kay?@ Monday, March 15, 2004 10:37 PM

Can't we all just get along and admit the the MS Acess DB model is tops!!!! :)

Unit2202

# re: Yukon and Whidbey: a marriage not worth fixing@ Tuesday, March 16, 2004 1:26 PM

VS.NET needs to take a lesson from <a href="http://www.eclipse.org/">Eclipse</a> here. It'd be nice if every framework release didn't require a new IDE.

Christian Romney

# re: VS.NET Service packs and why they're not here@ Tuesday, March 16, 2004 1:36 PM

Simon: Alright then, how many for VS.NET (2002)? Let's not forget (since most of us have MSDN subscriptions) that 2002-2003 was NOT free.

Frans: Let's hope MS isn;t adding more developers to a late software project. Brooks' Law and all that...

Christian Romney

# re: Visual Studio 2005 = @ Tuesday, March 16, 2004 3:34 PM

TrackBack

# re: Yukon and Whidbey: a marriage not worth fixing@ Thursday, March 18, 2004 5:02 AM

My words.

Thomas Tomiczek

# re: ORM and O/R mapping@ Thursday, March 18, 2004 9:36 AM

s

zolshop

# re: Why Edit & Continue is a bad thing@ Thursday, March 18, 2004 1:29 PM

Currently I write test harnesses for a lot of my code. I wouldn't mind using edit and continue to unit test the code, before even writing the test harness to allow a tester to test it more thoroughly. In this way, I can focus on the two task seperately. Less confusion, better code, etc.

If you guys are all writing such well planned out code, that you never use any "trial and error" methods.... do you even test your code?

Stephen Johnston

# re: Oracle 9i is already generations ahead and shows a .NET flaw.@ Thursday, March 18, 2004 3:31 PM

I've had years to work with Oracle and Microsoft SQL Server, both as a DBA and a database developer.

I agree that Oracle has a lot of features that SQL Server has yet to offer. But the same can be said going the same way. To me, the only time I would recommend Oracle over SQL Server is for data warehousing, or if you particularly need a database that speaks Java (I can't imagine why.)

To address some of your points:

Sequences: in practice, they are cumbersome. SQL Server very nicely packages up the "Identity" as a synthetic key, wherease with Oracle, you have to write code to apply a sequence to a field to generate a synthetic key (which in most cases means writing triggers.) Yes, sequences are more flexible and transportable, so I don't rate either RDBMS as a winner. But they are far more work to use. You can in fact write the equivalent to sequences in SQL Server, just out of interest...

MVCC: I don't think I have heard it given this particular label before, although it's appropriate. I generally call it "non-blocking writes" and Oracle have yet another term that I can never remember. But yes, this is one of the features I love about Oracle, and one area where I swear at SQL Server because of the lack.

Schema driven: er, this is a complete wash. SQL Server has schemas. The default schema is dbo, but if you create additional users in a SQL Server database, and they create objects, they will be created under that user's schema. SQL server has both multiple databases, and multiple schemas within a database. Oracle only has multiple schemas. On the other hand, Oracle forces you to implement multiple instances for different applications, and I wish more SQL Server sites would do the same.

Synonyms: oh yes, the database version of a "goto". With all the same inherent issues. They are a nightmare to manage! My recommendation is do not use them. Ever. Particularly public synonyms! They make administering access and security a nightmare and upgrades a nightmare.

Truly user definable types: er, yeah, kinda. Oracle still have some work to do to better integrate these into being usable in the database, and I think their "object-database" feature set is rather clunky. Not something that appeals to me as a "purist". If you need them though, then Oracle is the better platform in this case.

So, generations ahead? I think not. Here's a simple task for you, that everyone always needs to do with a large database. Export some data into a text file -- CSV, XML, whatever. Go on, I dare you. Oh, whoops... you have to write a chunk of code to do it! Now where's DTS when I need it?

As for the importance of documentation -- I have used Oracle for over a decade, and I still have the documentation! And yes, it makes a vital difference to developer productivity, to quality of development, to quality of design. So this is a MAJOR issue for me recommending Oracle as a developer platform.

Tools... well, you can buy tools for Oracle. Oh, suddenly Oracle is looking much more expensive that SQL Server.

Oracle has it's strengths, and as a data warehouse platform, I would recommend it over SQL Server (reverse-key indexes, bitmap indexes, object partitioning, etc). But as a simple RDBMS for developers, give me SQL Server any day.

And your article didn't really show me any "flaw" in .Net -- you do know that there are Oracle and DB/2 specific plug-ins to .Net? And those are just the ones I know of.

I'm glad you're enjoying Oracle -- it's a great platform. But put those synonyms down! Especially if you want a DBA to support your database.

Bruce W Cassidy

# re: Subversion: unbeatable sourcecontrol.@ Thursday, March 18, 2004 4:23 PM

I've been using SVN, TortoiseSVN and AnkhSVN for almost a year, it's BY FAR the most reliable and friendly VC Tool I have used. Being OpenSource is even better because you get timely updates and the ability to tweak things you want to change, there is even a build that uses _SVN directories instead of .SVN ones.

You can get around the .SVN directory pretty easily by following instructions here: http://staff.develop.com/onion/Samples/aspdotnet_without_web_projects.htm futher instruction for making new projects is here: http://blog.steeleprice.net/archive/2003/11/09/134.aspx

Steele Price

# re: Does SOA require Object-Message mappers? It depends.@ Friday, March 19, 2004 4:58 AM

I agree with you. The Managed Model is more maintainable in the long run. But people have been so much into OOP, they always want to keep data and functionality together. That´s why they had a difficulty with MTS in the first place. And that´s why they want persistent objects with methods like Save() on them.

I, however, would vote for more differentiation between service (manager) and data. "Real" objects have their place (e.g. maybe to represent a drawing in memory). But when it comes to transporting data, functionality should be separated from data.

An people will realize it, when they start to develop UDTs for Yukon. Once you start using a UDT as a column type, you can´t replace it´s assembly in Yukon anymore. Understandable - but very inconvenient.

So what do you need to do? Pack your data in one UDT class definition and assembly and base you columns on that "anemic" type.

Data just seems to be more stable than functionality.

Ralf Westphal

# Evaluation of Stored Procedures for .NET Developer@ Saturday, March 20, 2004 1:03 PM

TrackBack

# re: Summary of reactions on my blog yesterday@ Sunday, March 21, 2004 7:35 AM

agree to SpiderMan

carfield

# re: A plea for full C++ language & framework support in .NET@ Sunday, March 21, 2004 2:31 PM

Gimme a real C++ language not some quasi-halfway between java & C++.

C++ has syntax (inline, friends,etc) that is designed to help remove OOP abstractions so a good compiler can spit out code as fast as a C code.

MOnO rocks

# re: VS.NET Service packs and why they're not here@ Monday, March 22, 2004 6:11 PM

Here, here!!! Will MS listen?? My comments on the subect are in my blog" <a href="http://dotnetjunkies.com/WebLog/mlevison/archive/2004/03/22/9735.aspx">No Whidbey! Perhaps a Service Pack this year?</a>

Mark Levison

# re: VS.NET Service packs and why they're not here@ Tuesday, March 23, 2004 9:13 AM

Brooks' Law is useful... but even properly run projects get behind sometimes, and properly run projects *can* add people without harm.

Stephen Johnston

# re: "Framework-Hell"-solution is here: ISV's can upgrade to VS.NET 2003 without pain.@ Tuesday, March 23, 2004 12:40 PM

Huge Time Saver!!

Awesome article. This tip saves duplicate code in two places.

Trevor

# re: Stored procedures are bad, m'kay?@ Tuesday, March 23, 2004 7:00 PM

Hey, I just sorta started databasing and I read almost all these comments trying to decide whether I should use Stored Procedures. But I have one question for any geniuses out there.....

How the hell do I stop injections without using stored procedures?

And I don't want twenty replace statements....

Very interested, Micah

Micah Peterson

# re: Stored procedures are bad, m'kay?@ Tuesday, March 23, 2004 7:04 PM

Oh yah, and my department doesn't have .net

Micah Peterson

# re: Why Edit & Continue is a bad thing@ Wednesday, March 24, 2004 7:08 AM

I'm afraid I would side with RichB on this one, the issue here is not so much to do with E&C as with the time it takes for VS.Net to pick itself up off the floor when you stop the debugger. This is why E&C is useful, but only for the typos, I agree - but these are precisely the 'easy' bugs that you want to waste the least possible time on, so that you can get on to the 'real' bugs.

Benjol

# It's in the server dummy@ Wednesday, March 24, 2004 11:49 PM

Frans has another take on the EU ruling

TrackBack

# re: Microsoft's anti-competitive behaviour@ Wednesday, March 24, 2004 11:54 PM

TrackBack

# Frans Bouma on the Realplayer vs. WMP debacle@ Thursday, March 25, 2004 12:14 AM

TrackBack

# re: Stored procedures are bad, m'kay?@ Thursday, March 25, 2004 2:06 AM

Micah Peterson, check out parameterized queries, they should solve your problem nicely if you really intend to live life without SPs.

Personally I also totally disagree with the writer that dynamic/embedded SQL are better than stored procedures. Stored Procedures are definitely the way to go for run of the mill business applications, but one must admit (like some other posts have) that there are indeed cases where dynamic SQL may be better suited. Like all things in the world: “It depends”

Foulds.NET

# re: Stored procedures are bad, m'kay?@ Thursday, March 25, 2004 5:16 AM

SP's are nice for client-server applications where malicious people could connect and wreck your database if they would have access to the database tables.

SP's are also nice if you are for example doing imports of data using 1000 lines of T-Sql code with checks and filtering etc, using an SP as a script that can be called without giving Query Analyzer to everybody. It beats, IMHO, building that script in a non-SQL language making many calls to the database.

SP's can come in handy if you want to make sure that every time any client application makes that update of 3 tables, an email is send and a record gets written somewhere.

For the rest, especially in web-based apps, dynamic SQL has enourmous advantages. It just gets rid of a 'tier'. I once dealt with a database that has triplets of tables (splitting the id, the revision sensitive data and revision/language sensitive data), but with consistant table names. Define the basics of this concept once in the SQL generating code once and all insert/update/translation/versioning stuff becomes a breeze.

The enemies of dynamic SQL are of course the n-tier people, who relentlessly try to "separate the business logic" and stuff like that, and generally believe that higher n is better. Look... in theory it is very nice if you have many layers, and I guess it will be "politically correct programming" for the next 5 years or so. But in the usual web-based app, and I've seen many - also for larger companies, exactly how much "business logic" are we talking about? 95% of the code is just buzy getting the contents of some simple ProductName or so from a database column to the browser and vice versa, and the less layers/tiers/concepts, the less errors and dependancies. 90% of stored procs in a usual web-based app do nothing but passing data!

There is even nothing wrong with a product list generated by the 15 lines code of which:
SqlSelect("id,label from product where xid=" +SaveId(someint))
is the core. Any junior will be able to quickly change the code *without breaking it or any other code* when the products here suddenly have to be sorted by label. Can you say the same of a solution where some business component is called that calls a data layer component that calls an SP that uses a view that queries the table? I mean: somewhere in the application the same component or SP or view might be used too... Right?

Now I'm buzy, I remember one terrible project in which a 100-tier guy implemented a senseless set of SP's just to have all data pass through as "middleware", then create a lot of code to make the "higher layers" "middleware independant". I hope none of the readers will mimic this behavior!

In general: SP's: use them, but only if you really really need them.

Henk Poell

# re: The MS - EU ruling@ Thursday, March 25, 2004 5:51 AM

I have one simple question for those who oppose the practice of "bundling":

Should Microsoft have quit integrating new features into the operating system when networking stacks were still being provided by third parties?

Perhaps others don't, but I remember the bad old days of Windows 3.11 and Windows 95 when one had to download a Winsock package just to get online. Not very pleasant. But when Microsoft integrated these features into the OS, they put third-party providers out of business.

Seems to me that that's a normal hazard of providing add-on software that people might conceivably want out-of-the-box. After all, how many operating systems can you name that do not automatically install a web browser by default? Yet somehow Opera, Firebird, etc., still manage to hang on, and still get downloaded, as do WinAmp, Real, Apple's iTunes player and other media players. So it doesn't appear to me that people's choices are being restricted at all.

G. Andrew Duthie

# re: The MS - EU ruling@ Thursday, March 25, 2004 6:04 AM

You also don't get the point. It's not about the program, it's about what the program will establish over time. Of course, you can download another player. That's not the point. It's also not the point about MS integrating codecs into the OS. It's about the player making WMA and friends defacto standards.

I remember the days when Trumpet winsu^Hock was the TCP stack you had to use to get access to the internet. I too am aware of the fact that there is a thin line between what should and what shouldn't be integrated in an OS. However, it's not the tool integrated in the OS, it's WHY the tool is INTEGRATED (and not shipped separately) in the OS. It's not integrated because MS wants you to play music, because it doesn't require integration for that and MS wouldn't pouring that amount of money in WMP marketing. It's about making WMA and friends defacto standards, so in the end you need WMP or you can't consume the content or: you neet WMA streaming technology or you can't reach any consumers.

Try using the Firebird browser and you'll soon see that some sites are not usable so you have to use IE, so you have to keep IE around. "Then why bother using Firebird?" a lot of people will think, and will not use Firebird, but will stick with IE.

The old dreaded "but you can download the player" is a moot point. Most people won't download them. They already have a player, and look, you can use it with all the content you want to see. Gee, how can that be: because the player is so great it can show you all those content, or because the player is there and THUS the content providers are required to use WMA otherwise their target audience has a hard time consuming the content? Why can't WMP play .rm files, why can't WMP play quicktime movies? WHy wouldn't MS give the user the codec to play these streams as well, because a LOT Of content is in those formats? It would give more customer satisfaction, right? It also would give other formats a way to get to the consumer, and content providers a reason NOT to use WMA and friends, as .rm and quicktime are also watchable by everybody, as everybody has WMP.

Frans Bouma

# re: The MS - EU ruling@ Thursday, March 25, 2004 6:16 AM

>>Why can't WMP play .rm files, why can't WMP play quicktime movies? WHy wouldn't MS give the user the codec to play these streams as well, because a LOT Of content is in those formats<<

Lets say MS built this into WMP. Would this be good or bad for Real/Apple?

senkwe

# re: The MS - EU ruling@ Thursday, March 25, 2004 6:27 AM

"Lets say MS built this into WMP. Would this be good or bad for Real/Apple? "
Yes, because millions and millions of people can then use content in their formats. So content providers can license quicktime streaming technology or real media streaming technology (their main source of income). For consumers this is also better, because if they swap operating system (!) they don't have to be afraid all of the content will be WMA'ed as content providers will not be forced to use WMA per se (because potential consumers do have a player installed already)

After all, if you opt for real media or quicktime, you force your consumers to download an extra player, which can be a pretty high hurdle for a lot of people (I for one don't use real player because it is spyware, although you have open source alternatives)

Frans Bouma

# re: The MS - EU ruling@ Thursday, March 25, 2004 6:28 AM

I don't really claim to know which side is correct, but your post was enlightening.

Paul Wilson

# re: The MS - EU ruling@ Thursday, March 25, 2004 6:38 AM

Paul, me neither :) I do feel that MS has the right to include tools into their OS, even solely to get a bigger marketshare in some area. As long as it doesn't cross a line drawn by laws. The EU decided it has crossed that line and for a reason not a lot of people seem to understand. :)

As an example why it is important to acknowledge that line drawn by laws, it is good to look at what is integrated in a server OS sold by MS and why it is not a big deal this integration takes place: Windows 2000 server or Windows 2003 server do not have a monopoly on the server. So if MS integrates a webserver in the OS which works only with MS formats (ISAPI) does it make a big difference and does it force developers to adopt it or go out of business? No, not at all. :)

Frans Bouma

# re: The MS - EU ruling@ Thursday, March 25, 2004 6:45 AM

I agree with Paul, of all the arguments on either side, Frans' is probably the most well thought out. I still think the ruling is crappy, but you make a good argument Frans. Cheers.

senkwe

# Socialists and the anti-Microsoft crowd.@ Thursday, March 25, 2004 6:49 AM

TrackBack

# re: RIP!@ Thursday, March 25, 2004 7:54 AM

TrackBack

# re: The MS - EU ruling@ Thursday, March 25, 2004 9:03 AM

You know this is the same argument that I heard about IE over on the states side. The problem that nobody was addressing with that argument, and the Open Source community conviently chose to ingnore, was if you don't have a web browser on your machine out of the box how are you suppose to get any of the other web browsers out there? It was one of those Catch-22's that you are damned if you do and damned if you don't include the browser. So I really found that whole non-sense to be rather annoying, it was just really about a company (i.e. Netscape) that went belly up because they chose not to improve their product any. How many years did we have to deal with Netscape 4.x, it was probably a good 5 years.

I see the same problems happening here with WMP, how is the average Joe suppose to find out about all these services and music formats out there if he doesn't have a starting point. For instance, my grandmother loves her music CD's getting played on her computer, but how is she suppose to find WinAmp, RealPlayer, QuickTime or WMP if she still thinks the Internet and e-mail are the same thing. But with her new computer all that she has to do is pop in her CD and up comes WMP to play her music.

I think the problem is everybody who is weighing in on this topic, assumes the average computer user knows about all these media players, and knows where to find them and how to install them.

I don't mind the MS intigration, because as a developer that has worked on both Windows and Linux machines, I have to say I like knowing that the user that is going to be installing my software will have the same basic setup as me. So I don't have to worry about checking for every little component and library in my code.

Also I like that MS isn't up in your face intrusive like AOL (with RealPlayer and WinAmp), have you ever tried to clean your system of everything AOL after you install one of those programs? Because it is a task in it self.

So in summery, I don't agree wtih what Frans says, because I like knowing that MY PC has everything I need right out of the box, and if I want more than that, I go BUY (yes people still buy software) the software or download the free stuff off the internet.

Nick Berardi

# re: The MS - EU ruling@ Thursday, March 25, 2004 9:05 AM

Frans, thanks for your notes. Really good arguments. However, I'm not sure the EU understood it this way.
With these arguments other solutions would be possible: opening of the WMP protocol, the requirement to support other protocols with the media player...

This was Microsoft's offer to the EU:
side by side installation of 3 or 4 other media players with the operating system.

Christian Nagel

# re: The MS - EU ruling@ Thursday, March 25, 2004 9:15 AM

"This was Microsoft's offer to the EU:
side by side installation of 3 or 4 other media players with the operating system"
I couldn't find any trustful information about MS' offer. Could you throw in a link?

Frans Bouma

# re: The MS - EU ruling@ Thursday, March 25, 2004 9:16 AM

"So in summery, I don't agree wtih what Frans says, because I like knowing that MY PC has everything I need right out of the box, and if I want more than that, I go BUY (yes people still buy software) the software or download the free stuff off the inter net."
That's a contradicting statement. If the system has everything you need right out of the box, you don't have the need to buy software, because it already is on your system.

So the only software you do buy is stuff you don't need (or do you?)

Should office be integrated with windows? Or at least word?

You drag IE into the argument, but that's different from WMP, as WMP is not required to download WMP. I'm also not saying you shouldn't have a mediaplayer on the system, but it should be up to the OEM to decide which one.

For the consumer it might be just about the mediaplayer. I however find it pretty shortsighted if you just look at that aspect because it is not about a player for the consumer, it's a tool to get a strong userbase in the (near) future for a technology that should make them serious money.

"Also I like that MS isn't up in your face intrusive like AOL (with RealPlayer and WinAmp), have you ever tried to clean your system of everything AOL after you install one of those programs? Because it is a task in it self."
I know, but have you ever tried to remove WMP? I have and you can't. My WMP is corrupt on my system, it says it needs a newer dll to run. I can't download a newer version from MS' website: I have to do a repair-install of XP. Erm... no thank you.

Frans Bouma

# The EU and MSFT@ Thursday, March 25, 2004 9:30 AM

TrackBack

# The EU, MSFT and political positioning@ Thursday, March 25, 2004 9:34 AM

TrackBack

# re: The MS - EU ruling@ Thursday, March 25, 2004 9:42 AM

I can't throw in a link :-(
Yesterday Thomas Lutz (Microsoft Austria) told about this in the TV-news in Austria.

Christian Nagel

# re: The MS - EU ruling@ Thursday, March 25, 2004 9:47 AM

"I can't throw in a link :-(
Yesterday Thomas Lutz (Microsoft Austria) told about this in the TV-news in Austria"
Hmmm, bummer...

Either way, IF it's true, it would have been solved THIS issue, but no future issue. The EU was eager to set a precedent for future cases as well. If they would have allowed the settlement proposal as you state it, a future case (and one is already on the horizon in the case of the virusscanner inclusion in XP SP2, which kills a lot of business of symmantec and others) would have to start from the beginning, which is in the advantage of the violating party, in this case Microsoft.

Frans Bouma

# re: The MS - EU ruling@ Thursday, March 25, 2004 11:39 AM

Frans interesting point of view.

I do have a few concerns with the point of view.

Lets say in the 80's that we had the DMCA in place. What would the computer industry look like today??
Compact wouldn't have been able to reverse engineer the IBM Bios. Apple would have been liable to Xerox for the GUI the mouse and a few other items.

Times have changed. The PC is moving from a Hobbiest/Office system to the basis for CE devices. and all of the above.

With that Consumers are demanding that certain features be made available. (I won't mention the true monopolist as defined by law here but will say that Real called them out recently)

The issue at hand is where the PC is moving. Glitch free audio, glitch free video are neccesities for the market in some areas.

It should be pointed out in this defence is that Real has as much access as Microsoft does to implement or extend these features.

I say let the market decide on that point of view. Most of the market decided against Real when they added spyware.

Security is another big factor. MS just added the firewall, I believe that AV should be added also. Should it be a API or MS actually provide it?? we know that consumers are not buying the protection they need or the expanse of viruses, spam etc etc wouldn't be as high as it is now.

The question is Who defines the OS and what the OS is. I say that it evolves over time and is dependant on the market it targets.

Now if you talk at the server level, then yes includeing the audio and media componets at the server level is questionable. BUT MS should be able to make a SKU with it available.

well enough rambleing. sorry for the stream of thought post it does disjustice for your well thought out post.

If governments want to play the regulation game, they should just say that Licensing with OEM's must be open and allow them to choose what is put on the systems. I for one would Love that so that I can tell them to stop putting real aol and various other "system distablizing componets on the systems I have to buy from OEM's)

Douglas

# re: The MS - EU ruling@ Thursday, March 25, 2004 11:57 AM

Your post hit the nail on the head, Frans.

Shannon J Hager

# More on the EU ruling@ Thursday, March 25, 2004 11:59 AM

Frans Bouma: "It's not about some crappy player vs. some other crappy player program. It's about the difference between integrating a program into an OS and shipping a program with an OS." [via Damian]...

TrackBack

# re: The MS - EU ruling@ Thursday, March 25, 2004 1:10 PM

The way I understand it is that the evil Real will not allow MS to include its codec.. This forces users to download alternatives such as Alternative Real to play their content.

Future behavior shouldn't be punished... There is a fine line between what should be bundled or not bundled.. Let individual companies sort it out. Don't get institutions like the EU involved who will bureacratically make these decisions..

Also, why hasn't the EU gone after Real for their proprietory format?

Jeffrey

# re: Socialists and the anti-Microsoft crowd.@ Thursday, March 25, 2004 1:26 PM

It sounded like a capatilistic argument to me. But what do I know, I'm just a geek.

What I think Frans point is: Let the OEM, the seller of the hardware, deside what base install of applications to use.

If Dell wants to install RealPlayer instead of WMP and sell the computer, they should be able to. If RealPlayer can't play all the formats then that is the risk that Dell incures.

What the situation now is: Microsoft has tied a specific application (wmp) to the Operating System (Windows) such that the application cannot be removed without borking the OS. And since Windows puts it in, the control whtat it can do and show.

Hardware and software are becoming comodities, and the content is where the money is going to be made. Who controls the content controls the money.

Darren Pruitt

# re: Socialists and the anti-Microsoft crowd. @ Thursday, March 25, 2004 2:26 PM

Darren, I don't agree that there should be different Windows distributions depending on the OEM. They can add things, that's ok. But as application developer I like to use features that are available on the client's PC.

There just was a comment from a Linux fan at:
http://weblogs.asp.net/cnagel/archive/2004/03/25/95814.aspx
Multiple distributions is a actual problem with Linux: the RedHat distribution wins, the other distributions loose more and more marketshare.

Christian Nagel

# re: The MS - EU ruling@ Friday, March 26, 2004 5:39 AM

Frans: "Try using the Firebird browser and you'll soon see that some sites are not usable so you have to use IE, so you have to keep IE around."

Which sites? I have only found 'windowsupdate' and 'gotdotnet workspaces' the latter of which is rubbish anyway. And there's no big deal with keeping IE round for windowsupdate.
I'd like to know how MSN Messenger could be configured to fire up Firefox instead of IE though - that'd be useful...
And hosting Firefox in Sharpreader instead of IE.

IM

# re: The MS - EU ruling@ Friday, March 26, 2004 5:48 AM

IM: the occasional site, some sites here in Holland do not work very well with Mozilla browsers.

You should assign .htm and .html to firefox in the file types section of windows explorer -> tools -> folder options. Assign as much .htm and hmtl extensions to firefox as you can find there. THen it works, firefox opens when I click on a link in outlook for example :)

Frans Bouma

# Socialists and the anti-Microsoft crowd@ Friday, March 26, 2004 7:00 AM

TrackBack

# re: Nasty winforms bug@ Friday, March 26, 2004 7:18 AM

Please highlight this in your post "asynchronous behaviour of winform controls". The whole event system suffers from this behavior. We've had similar problems and hacking around those darn events makes the whole even messier.

Paul Gielens

# re: Nasty winforms bug@ Friday, March 26, 2004 7:21 AM

Will do :)

Frans Bouma

# re: Nasty winforms bug@ Friday, March 26, 2004 7:28 AM

Haha, be glad you don't develop for the Compact Framework. An example:

Controls in the CF have a validating event (with CancelEventArgs) just like their Winforms brothers. When calling e.Cancel in the eventhandler nothing happens and everything continues like it's business as usual. Why would you want to cancel something in a Validating event anyway? :)

Martijn Boland

# re: Nasty winforms bug@ Friday, March 26, 2004 7:53 AM

You should post this in the WINFORMS Listserv. Lots of MS folks 'listen' and reply. I'd be curious to here their reply.

Greg Robinson

# re: Subversion: unbeatable sourcecontrol.@ Friday, March 26, 2004 9:16 AM

Subversion Rocks! And it does integrate with VS.NET very well!

Brenton Hosue

# re: Nasty winforms bug@ Friday, March 26, 2004 10:24 AM

This actually happens when using the win32 api as well. It is just the order that the events get sent through the message pump...

Jeff Lewis

# re: Nasty winforms bug@ Friday, March 26, 2004 10:25 AM

Jeff: true, but that is an asynchronous, somewhat lowlevel environment, not the synchronous environment of .NET. I'd expect from .NET that it would be handled properly.

Frans Bouma

# re: Nasty winforms bug@ Friday, March 26, 2004 1:12 PM

WinForms validation is useless anyway, I never bother with it (not that it does much for you).

Ian Griffiths discussed this before:

http://staff.develop.com/candera/weblog2/articleview.aspx/CLR%20Workings/WinForms%20Validation%20Broken.xml

Johnny Hall

# re: The MS - EU ruling@ Saturday, March 27, 2004 12:58 PM

Hey Frans,

As I commented in my blog posting, you're right about what the ruling is all about.

The things that concern me however:

1. Why did nobody complain(in court) back when WMP was a crappy player with a crappy streaming technology?
2. Integrating a certain application / technology in the OS only gives you an advantage, not a win. I am convinced that when one delivers a competing app which is superiour to the one integrated in the OS, people will use your app.

The thing that bothered me and triggered my post, was that Real didn't do a good job of delivering a superior app, thus loosing market space for their player and for their streaming technology.

Greetz,
-- Rob.

Rob Tillie

# Re: The MS - EU ruling@ Monday, March 29, 2004 1:27 PM

&gt;Should office be integrated with windows? Or at least word? &lt;

Why not? I know I'd appreciate it.

For the longest time I've been waiting for MS to get around all of this by simply saying that Windows isn't just an 'Operating System', but rather a 'Desktop Solution' (or some other smart cool term...)

That is, if people say &quot;this shouldn't be included with an OS&quot; why not just say &quot;Fine, this isn't /just/ an OS we're offering consumers...it's a /bundle/ consisting of OS + relevant apps - we call it the &quot;Complete Desktop Package&quot;...and voila?

/Mats Helander

mats.helander@pragmatier.com

# Re: Socialists and the anti-Microsoft crowd.@ Monday, March 29, 2004 1:47 PM

&gt;What the situation now is: Microsoft has tied a specific application (wmp) to the Operating System (Windows) such that the application cannot be removed without borking the OS. And since Windows puts it in, the control whtat it can do and show. &lt;

So? Just because you can't remove WMP doesn't mean you (as an OEM) can't install RealPlayer before you ship. You can even make it default player. So what's the problem?

The real problem wuld be if MS used Bully Tactics (TM) as they were accused of in the Netscape case. It was a similar situation - NS could also be installed by OEM's even if IE was already there - if it hadn't been for the agreements MS made OEM's sign that had them promise not to install NS. I've no idea if this really happened, IANAL and I'm not overly familiar with the MS vs DoJ case, but as far as I could understand MS was accused of doing this...(sorry if perpetuating a rumor or something, just trying to examplify here)

At any rate, that's the only kind of thing that would keep an OEM from installing RealPlayer if they really wanted to...right?

So unless something like this is happening, I don't quite see what the problem would be for the OEM who wanted to install RealPlayer. But please wise me up! :-)

/Mats

mats.helander@pragmatier.com

# re: The MS - EU ruling@ Monday, March 29, 2004 1:59 PM

Mats, it's not the player as being default, it's the availability of WMP on every desktop.

Example: last week, download.nl started, an online music shop. The format? WMA. Why? They say on their website: "Because it's the most widely used format available, everybody has the player".

Now, THAT's the point here. :) Realplayer can jump up and down, but Microsoft has already won: WMA is the defacto standard or is becoming it in a very fast pace.

Metaphore: Objectspaces will become the defacto standard (or at least opath) for O/R mappers on .NET. Just because it is everywhere. I think you can relate to that :)

Frans Bouma

# Re: The MS - EU ruling@ Monday, March 29, 2004 2:34 PM

Hi Frans!

I actually agreed with your post, just not with all of the two comments I replied to! :-)

I certainly agree with you that &quot;stakes is high&quot; when it comes to owning the mass media distribution channels of the future! Consider if there was only one maker of TVs in the world and all sets were preset to &quot;Fox News&quot;...[shudder] Then, Bush might actually win the upcoming electipon without the help of his fancy new (remote-controlled) electronic voting machines....

/Mats

mats.helander@pragmatier.com

# re: The MS - EU ruling@ Monday, March 29, 2004 3:21 PM

hey Mats :)

heh :) I fully agree :) That would be a horrible world to live in *shiver*.

But to be fair: what MS did was *in the beginning* fair and normal: use the mechanisms at hand to roll out a future strategy. It's for competitors a sour grape that they found out too late (or at least couldn't do anything about it). .. But that's life I guess.

Frans Bouma

# Follow-up on WMP@ Monday, March 29, 2004 5:46 PM

Follow-up on WMP

TrackBack

# re: Subversion: unbeatable sourcecontrol.@ Monday, March 29, 2004 9:55 PM

I was actually using Vault for my personal projects before I discovered Subversion. The main reason that I switched was because Vault was too slow and over the top for me - while I like the fact that it uses SQL Server, I definitely don't need web access for source control. Subversion is simple, and it just plain works. You definitely can't complain about that.

milbertus

# re: The MS - EU ruling@ Tuesday, March 30, 2004 1:20 AM

Why some people don't like when somebody makes successful business. Guys, in the country where I live we have a saying: "The barn of my neighbor is on fire. Not a family or friend, but VERY pleasing to the eye".
Well, in general this case smells the same stuff or in other ways to say "can we make some additional money by suiting somebody and not making software?"

Romualdas

# not exactly real facts@ Wednesday, March 31, 2004 5:31 PM

the site is clear alright, but this woman's knowledge of physics is as limited as her knowledge of history.

alexander akimov didn't push "the wrong button". a novice engineer would know not to design a reactor that can be destroyed by push of a button. he flipped a switch. an EMERGENCY SHUTDOWN switch, which was supposed to SHUT THE REACTOR DOWN. and it was the right thing to do. he followed the protocol. she doesn't mention that it was a gas explosion because xenon built up and the excess of neutrons was not absorbed (xenon poisoning). she also doesn't mention that the man who tried to stop the chain reaction died 3 weeks after the accident. a careless, insensitive and ignorant narrator.

she talks about serious issues and yet manages to smile and strike a pose for the camera, and then dares to call this site her "favorite part" of the ride! with this reaction, i doubt she ever lived there.

by the way, radiation does not "evaporate", and some of the numbers (death toll as well as levels of radiation) are misquoted.

the pictures are real, of course, but to call this photojournalism is not quite fair, considering that they were taken at different times and came from different sources. many of these look familiar (and i do happen to have a lot of resources, including a collection of books, iaea and nrc articles, on the topic), and could have been taken from internet sites or photocopied from books.

and have you wondered, why her bike only appears on one picture? on the EDGE of the zone? well, civilian vehicles are kind of prohibited there, unless you're an employee who has special business bringing a vehicle there. after all, there's a good possibility of contamination, and who would want to risk losing a kawasaki if it became contaminated? she says there's no radiation on the pavement. what? there are no gamma rays floating around? no alphas bouncing? how about the ash and the radioactive dust that were expelled from the reactor during the explosion? you know, the ones that were detected in scandinavia? well, a vehicle, or wind for that matter, can easily stir that dust up. that's why the only cars that travel through the zone have their windows tightly closed and sometimes taped.

she may have ridden her bike around the town and the power plant, but i doubt she made it past the checkpoint.

veronika

# MS Developer Community Growing Impatient@ Thursday, April 01, 2004 3:30 AM

TrackBack

# re: Objectspaces hostility and the separation of marketing and technology@ Friday, April 02, 2004 1:18 PM

Just remember that there weren't native ADO.NET Data Providers for Oracle and DB2 until almost a year after the release of .NET 1.0. Microsoft is going to support their own technology first, then add other technology support later. MS still has a year before ObjectSpaces goes live, I'm sure they will have provider-based support by then.

Robert McLaws

# re: Objectspaces hostility and the separation of marketing and technology@ Friday, April 02, 2004 1:47 PM

There was an unsupported, Microsoft Oracle Data Provider available at the time of 1.0 release.
But the more important point is that the Data Provider model was defined from the beginning - they established a set of interfaces for others to implement - so you didn't HAVE to wait for MS to support other technologies. With ObjectSpaces, there is no defined interface for others to implement.

Josh

# ObjectSpaces will concur the world,@ Saturday, April 03, 2004 12:22 AM

TrackBack

# re: Objectspaces hostility and the separation of marketing and technology@ Saturday, April 03, 2004 6:20 AM

http://weblogs.asp.net/pgielens/archive/2004/04/03/107007.aspx

Paul Gielens

# re: Good Programmers Read Good Code@ Sunday, April 04, 2004 8:59 AM

TrackBack

# re: Do not read just code, learn algorithms.@ Sunday, April 04, 2004 10:20 AM

Hi Frans - thanks for your thoughts. I know of a couple of .NET developers that have been breaking out the old C books recently looking at algorythms (comparing the performance of different approaches I think), but I'm not sure if that is going to help me. Maybe I have too narrow a veiw of what algorythms are, but I'm not exactly called on to implement my own sorting functions on a day to day basis, put it that way. I'm more interested in looking at mundane stuff. How do they comment their code? Variable names? What sort of patterns are they using? Do they use interfaces much? How well factored is it? Are their types mutable? How big are their types? I guess I would probably prefer to read design documents in addition to code, but these are rarely available.

I agree with you re: "tricks". I want "as simple as possible, but no simpler".

JosephCooney

# re: Do not read just code, learn algorithms.@ Sunday, April 04, 2004 10:33 AM

Joseph: I don't think you are doing what Frans was saying is wrong....

example: sonmeone wants my code for a sort, ok I give them a bubble sort I use to order small lists. if thats as far as they look and use it for a big sort then they are just copying by rote and makeing poor software.
at the same time if they want a "fancy" sort and get a quick sort and code it into the app to sort lists 0f less then 30 items then they can say they have this killer trick for sorting.... and never undestand that for small values of "n" the qsort is not the best way to do it... and that it's using too much ram and stack where a bubble sort may very well be faster and simpler.

kinda extreem examples but... I hope folks see what I think frans is partly saying....

the pain is when you have to read-code to fix a buggy system....
I am finishing the core of a re-write
of a system in "classic" asp....
what a mess..... and the "code" is often literaly "CODE" and is the only documentation of the thing.... so I must read it to re-write it better...

denny

# re: Do not read just code, learn algorithms.@ Sunday, April 04, 2004 11:30 AM

Couldn't agree more with Frans. Programming is about "why" in the first place and "how" in the last.

René van den Berg

# re: Do not read just code, learn algorithms.@ Sunday, April 04, 2004 11:45 AM

Glad to see you post a bit more regularly. I often find myself agreeing with your POV (particularly about OS).

Thanks.

Johnny Hall

# re: Do not read just code, learn algorithms.@ Sunday, April 04, 2004 12:24 PM

"How do they comment their code? Variable names? What sort of patterns are they using? Do they use interfaces much? How well factored is it? Are their types mutable? How big are their types? I guess I would probably prefer to read design documents in addition to code, but these are rarely available. "
Ok, but how are you going to judge the quality of code by simply looking at it? Say you see a lot of interfaces, is that good or bad? You can't say, because the reason interfaces are used is not formulated in the interface code.

Say you see some big classes. Is that bad? You can't say. Perhaps breaking up the classes is semantically wrong, but you can only understand that if you know what kind of design the classes have to represent.

I used the example of an algorithm, as most code written is algorithmic code, which includes datastructures. For example the book by Sedgewick is not solely about sort algo's. (just a small part is). It contains f.e. algorithms which are parallellizable, all kinds of tree algo's etc. which can be handy today in an OO environment as well :). When you see code implementing such an algorithm, is it then good code? You can't say, unless you have the algorithm description too :)

Frans Bouma

# re: Do not read just code, learn algorithms.@ Sunday, April 04, 2004 1:49 PM

It's important to realize that code reading is a valuable skill in itself. We gain from reading the source code of good software. Diomidis Spinellis has a book, "Code Reading", which discusses some of the techniques.
<p/>
Some techniques available with a good text search tool, or better yet a tool that can analyze the source and find references and generate diagrams, allow the following questions to be answered, for object-oriented code:
<ul>
<li> Who calls this method?
<li> Who implements this interface or subclasses this class?
<li> What are this class' superclasses?
<li> Where are instances of this class created, held, and passed as arguments or returned?
<li> What superclass methods does this class override?
<li> Where might methods of this class be called polymorphically, i.e. through a base class or interface?
</ul>
A good article for background is "Comprehension and Visualisation of Object-Oriented Code for Inspections" http://www.cis.strath.ac.uk/research/efocs/abstracts.html#EFoCS-33-98 section 5.
<p/>
Code may in one sense be the end product of the development process, but it really is, in the end, the only part the really matters, because all secondary materials can be old, irrelevant or just wrong.

Steven E. Newton

# re: Do not read just code, learn algorithms.@ Sunday, April 04, 2004 2:05 PM

That maybe true 10-20 years earlier. Today with so many APIs and SPECS around i believe the value of pure algorithms as you describe them is close to nothing. I have learn much more about WIN32 API, OO techniques etc reading Delphi's VCL source code than any book i have read on the same subject. Too sad that MS is still keeping BCL source code closed

Panos Theofanopoulos

# re: Do not read just code, learn algorithms.@ Sunday, April 04, 2004 2:57 PM

@ Panos: so you believe you're not developing software by applying all kinds of algorithms? Read books solely about algorithms, and you'll know what I'm talking about.

I can describe any system with solely algorithms. These are not depending on some kind of language, paradigm or other hype-/time depending aspect. Which means I can implement them in for example C, VB, C# or Haskel. Algorithms stay the same, the implementation just is different per language.

@ Steven:
So after reading and analysing a lot of code you have a lot of data. Is that data also information? Can you learn something from it? I say: not a single bit. I'd go even further: because sourcecode has to (!) describe the algorithm, the sourcecode is irrelevant. WHEN (not IF) we are able to check if an algorithm is implemented correctly in a given language, the code is just there to make the algorithm executable, and for no other purpose.

Just by looking at code you therefore learn nothing: you don't learn the algorithm (because you don't know if it is implemented correctly, if you are not testing that and you can't because you don't have the algorithm descriptions) and you don't learn techniques how to transform an algorithm in code which describes the algorithm.

"Code may in one sense be the end product of the development process, but it really is, in the end, the only part the really matters, because all secondary materials can be old, irrelevant or just wrong."
Code is really the only part that is really irrelevant: because you can reproduce it from its source: the algorithms. Not the other way around. It's not a chicken-egg problem, you definitely know what was there first: the algorithm. The sourcecode is just the representation (you hope!) of the algorithm. Therefore if you don't have the algorithm description anymore, the code's value is void.

Frans Bouma

# re: Do not read just code, learn algorithms.@ Sunday, April 04, 2004 5:20 PM

there is another classic book called 'Algorithms+Data Structures = Programs' by Wirth..
had that one in my undergrad days.. a good one..

SBC

# Take Outs for 4 April 2004@ Sunday, April 04, 2004 5:26 PM

Take Outs for 4 April 2004

TrackBack

# Take Outs for 4 April 2004@ Sunday, April 04, 2004 5:32 PM

Take Outs for 4 April 2004

TrackBack

# re: Do not read just code, learn algorithms.@ Sunday, April 04, 2004 7:03 PM

Frans,

I agree that too much code quickly degenerates into "just syntax" for expressing algorithms. However, as the Pragmatic Programmers suggest, intentional programming greatly alleviates this problem.

By actually making clear - in code - the design decisions made, and creating code structures that clearly reflect architectural principles of the system, then reading code IS worthwhile. This probably amounts to less than 1% of all code written, but we should strive to improve the state of code.

Code is, after all, too often the only documentation we have. Intentional programming makes our code speak volumes.

Udi Dahan - The Software Simplist

# @ Sunday, April 04, 2004 7:19 PM

TrackBack

# re: Objectspaces hostility and the separation of marketing and technology@ Monday, April 05, 2004 5:25 AM

See http://www.jnsk.se/weblog/posts/os.htm

I received the information from the ObjectSpaces team. As I understood it, it is public information and probably to be found elsewhere by now.

Best Regards,
Jimmy
www.jnsk.se/weblog/
###

Jimmy Nilsson

# re: Do not read just code, learn algorithms.@ Monday, April 05, 2004 6:55 AM

I normally agree with most of what you have to say Frans, but this time I disagree. You can learn a lot looking at good code.

Things like how people who love coding translate a general pattern to a language... for example how does the Singleton pattern get implemented in C#, Java, etc. To much more complicated things like how to put together a lot of patterns to support a design goal like extensibility.

I learn't a lot looking at the Open source java (like James, Jakarta etc) stuff a few years ago, it started to expose me to Server design ideas, the idea of contexts etc, i.e. meaning I can now if the situation warrants it write my own servers, rather than relying on things like ASP.Net, COM+ etc.

Also most of the time I am convinced you can quickly get a feel for whether code is good or bad too, if you understand what it is trying to do.

Alex James

# Algorithms : The Idea That Rules The World@ Monday, April 05, 2004 11:42 AM

I started translating data mining algorithms to code a few years ago and I was very surprised at how difficult it was to re-produce elegant code from an elegant algorithmic blue print.

My production code did not really look like the algorithm I was re-producing. I realized that while I could write commercial everyday code, thinking and coding in an algorithmic fashion was a completely different story.

I am now beta testing my translation of APriori Market Based Analysis Algorithm to a C# Component and I feel a lot better about my ability to create working models of algorithms.

Has translating algorithms to code made me a beter developer, in my opinion, YES.

Is there more to life than algorithms?

Look at Google, take a peek under the hood, what do you see?

Kingsley Tagbo

# re: Do not read just code, learn algorithms.@ Monday, April 05, 2004 12:14 PM

Frans: I will give you an example of a pure algorithm (away from APIs and specs), its a "problem" that i faced few months ago.

I wanted a "special" sort algorithm to replace the standard Array.Sort (i wanted to inline the compare part of it). First i decompiled the .NET's (it's the standard recursive quicksort algorithm, the same that you find in any book that you mention), then look elsewhere googling, no results just some non-recursive versions of the same. Then i search VCL and after stdlib source code where i found (crt/src/qsort.c) a non-recursive algorithm which had special optimizations to limit the number of comparisons and which for segments smaller than a certain size switch to insertion sort.

Bottom line : If you to learn general principals read an algorithm's book.
if you want production quality algorithms look for the source code of some library or a product. At least is optimized and debugged<g>

Panos Theofanopoulos

# re: Do not read just code, learn algorithms.@ Monday, April 05, 2004 12:27 PM

Panos: you thus rebuild the algorithm from the code read. Now, how can you be sure the algorithm you've rebuild from the read code is correct?

It might describe what the code does, but it's not necessarily the same as what you are looking for as an algorithm or what you think it should do.

your example is nice: (disclaimer, this is meant to be a general remark, please do not see it as a personal attack, because this is NOT my intention) with a thourough understanding of the quicksort algorithm, you can adjust the ALGORITHM to what you need and then implement it. This saves a tremendous amount of time and you know it's correct because you can proof it is correct. :)

Frans Bouma

# re: Stored procedures are bad, m'kay?@ Tuesday, April 06, 2004 12:04 PM

Stored procedures ROCK!!

Luke Skywalker

# re: Do not read just code, learn algorithms.@ Tuesday, April 06, 2004 1:38 PM

No doubt there are too many in our profession that don't understand the fundamentals well, and only look at and copy existing code, without really knowing how it works and why it does what it does. Yet saying that you can reproduce the code from algorithm is like saying your can reproduce the musical performance from the score -- true, but for the student of music you want to be intimate with both.

For a programmer, reading the code of good programs has some parallels with reading classic books for the writer. Grammar and punctuation are key fundamentals, necessary but insufficient for comprehending and producing great writing.

Steven E. Newton

# re: MVP!@ Wednesday, April 07, 2004 1:15 PM

Let me be the first to say congratulations! You certainly deserve it. Believe it or not, even though you've soured on Stored Procs, to this day I still use the original LLBLGen at work and it's saved me counless hours as well as provided good source code to analyze. Congrats!!

senkwe

# re: MVP!@ Wednesday, April 07, 2004 1:32 PM

Congratulations on well deserved recognition!

Robert Hurlbut

# re: MVP!@ Wednesday, April 07, 2004 1:35 PM

Congratulations!!!! I am sitting in a C# MVP talk right now.

Wally

Wallym

# re: MVP!@ Wednesday, April 07, 2004 1:44 PM

Congratulations Frans. I hope this will spur you to blog more often. :)

Shannon J Hager

# re: MVP!@ Wednesday, April 07, 2004 2:00 PM

Congratulations Frans.

I have greatly appreciated your blog.

AndrewSeven

# re: MVP!@ Wednesday, April 07, 2004 2:08 PM

Congratulations!

Mike

Mike

# re: MVP!@ Wednesday, April 07, 2004 2:13 PM

Bravo! :)

David Cumps

# re: MVP!@ Wednesday, April 07, 2004 2:13 PM

Congrats -- too bad its too late to be at the Summit this week. :(

Paul Wilson

# re: MVP!@ Wednesday, April 07, 2004 2:16 PM

Congrats!

Paul Speranza

# re: MVP!@ Wednesday, April 07, 2004 2:47 PM

Congratulations! And perhaps they'll send you to the TechEd 2004 for free...
I hope you haven't already registered yourself! ;-)

Lorenzo Barbieri

# re: MVP!@ Wednesday, April 07, 2004 2:55 PM

Congrats Frans!

Hmm, I guess this means that MVPs really *can criticize* Microsoft. Who would have ever guessed that we'd want feedback to improve our products and services? =P

Alex Lowe

# re: MVP!@ Wednesday, April 07, 2004 3:08 PM

Congratulations Franz! This is well deserved.

Daniel Auger

# re: MVP!@ Wednesday, April 07, 2004 3:10 PM

Thanks all! :)

Alex: :) I *hope* my critisizm is always based on arguments. (although large groups beg to differ that my understanding of what an argument is is valid ;) )

Good news is that I've realized that the amount of critical blogs of me is higher than the amount of educational blogs and that's not what I intended. I hope to get it more even soon!.

Lorenzo: no I haven't booked yet, still undecided if it's worth the money.

Paul: yeah, that was a bummer, but hopefully I'm there next year! :)

Senkwe: heh :) good to hear the tool is useful to you! :)

Frans Bouma

# re: MVP!@ Wednesday, April 07, 2004 3:31 PM

Congratulations!
Well deserved! :)

Omer van Kloeten

# re: MVP!@ Wednesday, April 07, 2004 3:53 PM

Well done Frans, you deserve it!

Marcus Mac Innes

# re: MVP!@ Wednesday, April 07, 2004 4:08 PM

Congrats dude!! Well deserved!

Patrick Steele

# re: MVP!@ Wednesday, April 07, 2004 4:33 PM

congrats to the flying dutchman!!

stefan demetz

# re: MVP!@ Wednesday, April 07, 2004 5:22 PM

well done!

Jayson Knight

# re: MVP!@ Wednesday, April 07, 2004 5:25 PM

Congrats, Frans!

Chris Frazier

# re: MVP!@ Wednesday, April 07, 2004 5:44 PM

Congratulations, Frans. Certainly a deserved honor. Hope to meet you at next year's MVP summit!

Doug Reilly

# re: MVP!@ Wednesday, April 07, 2004 7:16 PM

Congratulations Frans - justified recognition for your efforts in the .NET community.

JosephCooney

# re: MVP!@ Wednesday, April 07, 2004 7:53 PM

Well done Frans - Use your new found power and influence for the good side of the Force.

John Butler

# re: MVP!@ Wednesday, April 07, 2004 9:49 PM

Good job Frans! You had this coming to you :)

wojo

# re: MVP!@ Wednesday, April 07, 2004 9:53 PM

Congratulations! It was about time, think you deserved to years ago already.

Yannick Smits

# re: Do not read just code, learn algorithms.@ Wednesday, April 07, 2004 11:11 PM

What about if you have Robert Sedgewick's book on your shelf AND you look at other peoples code?
Don't you think that you can learn from both sources? I have learnt many things from looking at peoples code that I haven't read about in books. Could it be that you CAN learn the WHY from source code by spending a little time trying to understand it?

Chris Garty

# re: MVP!@ Thursday, April 08, 2004 1:52 AM

I was wondering when you'd step out with this, all eyes are on you from now on, mr Dutch MVP. So when can we expect a talk on the Dutch DotNET group ;)

Paul Gielens

# re: MVP!@ Thursday, April 08, 2004 2:18 AM

Congrats on a well deserved award. Welcome to the C# team.

Sam Gentile

# re: MVP!@ Thursday, April 08, 2004 3:16 AM

Congratulations :)

Zef Hemel

# re: MVP!@ Thursday, April 08, 2004 3:21 AM

Congratulations! Well done Frans. You deserved this.

Patrick Bes

# re: MVP!@ Thursday, April 08, 2004 3:27 AM

Thanks all! :)

Paul G.: I don't know :) First I have to find a subject to talk about (I think the 'manager model' is a good start).

Frans Bouma

# re: Do not read just code, learn algorithms.@ Thursday, April 08, 2004 3:31 AM

Chris: an example:
http://weblogs.asp.net/the1/archive/2004/04/06/108744.aspx

Do you understand the algorithm used? I don't, (well I have a feeling I do, but do not for sure) although I spend several hours on the problem :)

The problem is: humans don't read code very well, you have to interpret what you see to understand what it does. This is very error prone. That's why reading code to understand an algorithm, and THUS how to transform that algorithm to code (!) is not the way to do it. First read the algorithm, understand it, and THEN look at code which implements that algorithm (or better yet, try it yourself).

Frans Bouma

# re: MVP!@ Thursday, April 08, 2004 4:03 AM

FB: Are you participating at the DotNet meeting 22/4? I always wanted to hug an MVP, target acquired :D

Paul Gielens

# re: MVP!@ Thursday, April 08, 2004 4:08 AM

Paul G: I'm planning to go yes :)

Frans Bouma

# re: MVP!@ Thursday, April 08, 2004 4:38 AM

Congrats :)

Mischa Kroon

# re: Create #region macro for C#@ Thursday, April 08, 2004 7:17 AM

Great!

Just was I was looking for! My scenario is the same as yours (playing around bla bla) but I stopped after two minutes thinking that someone migth have done this already and put it on the net. Voilá! Here it was!

Thanks a lot!

Bernie

# re: MVP!@ Thursday, April 08, 2004 8:42 AM

Congratulations Frans!
I’ve learned many interesting things with your posts. I’m a component developer too and like you, I’m not a native speaker English, hahahaha!
My best desires for you.
Regards from Argentina.

Gabriel Fogante

# re: MVP!@ Thursday, April 08, 2004 4:28 PM

Congrats!

And is it normal to hug an MVP when you come across one? Or is this something special between you and Paul!? ;)

Dennis v/d Stelt

# re: MVP!@ Thursday, April 08, 2004 5:09 PM

heh :) I really don't know, I never met an MVP in person :)

Frans Bouma

# Chernobyl -- 18 years later@ Thursday, April 08, 2004 6:19 PM

A Ukranian girl named Elena created this photo journal of her motorcyle ride through the Chernobyl area, where a nuclear power plant exploded in 1986. These amazing photos of the city frozen in time are mesmerizing and powerful, yet chilling...

TrackBack

# re: MVP!@ Thursday, April 08, 2004 7:52 PM

Congtatz Frans!

Mitch Denny

# re: MVP!@ Friday, April 09, 2004 4:27 AM

A handshake would be fine though, I don't want to push my luck.

Paul Gielens

# re: MVP!@ Friday, April 09, 2004 10:59 AM

Congratulations!
I think you deserve it.

Niels Wewer

# re: MVP!@ Saturday, April 10, 2004 10:02 AM

Congratulations again. Sure makes one wonder where you get all the time to do all of these things.

Oh, and on MVP's: Michiel van Otegem and Sander Gerz are MVP's, aren't they? Group hug next time at the dotNed meeting! ;)

Alex Thissen

# re: MVP!@ Saturday, April 10, 2004 3:53 PM

Congrats! Email me at mikes@xtras.net as we have a benefits program for MVPs and other .NET Influencers.

Mike Schinkel

# re: MVP!@ Saturday, April 10, 2004 7:34 PM

Congrats!

Roy Osherove

# re: Stored procedures are bad, m'kay?@ Sunday, April 11, 2004 3:14 AM

Two more cents.

I say use them both. Each technique has its strengths and weaknesses in different situations. I will admit for years I have been a victim of thinking that sprocs are so much faster than dynamic sql. After seeing the excerpt from bol I was quite shocked.

My experience.

I have been doing the old web database application development thing for 4+ years now and early on I used mostly dynamic sql statements in my apps. This was pretty easy considering the code was asp pages and could be changed without sending them through a compiler. On the other hand the sql statements that were large were ugly and somewhat difficult to maintain.

One thing I keep hearing about is creating an sql generator. I have never seen one. Have you? Maybe I haven't because I have never looked or even thought about building one. SOunds like a good idea though!

Now days I use mostly sprocs.

Why?

Easy to maintain security on sprocs. My apps are built for internal company operations we have a company wide active directory I can use security groups from the AD on my sprocs and then hand the adding and removing of users to the AD groups to my Help Desk. This is one less thing I have to do.

I also like the fact that I don't have to write code for sql injection attacks. Once again, one less thing I have to deal with.

One disadvantage that I have seen is the domino affect that happens when you make a change to your data structure. Going from a varchar(5) to a varchar(10) (because business requirements change) especially if the column is a primary key with many foreign key references can create a very big headache. Would this be the same if I were using dynamic sql. Yes, but not to the same extent. Mainly cause your not data-typing parameters in dynamic sql statements.

In Oracle, there are keywords, %TYPE and %ROWTYPE, They allow you to datatype a sproc parameter to whatever the current type a column is. So as the database changes the parameters datatype changes automatically. No domino affect! Oracle also has whats called named notation for parameters. This allows you to specify parameters in any order you want. So as the sprocs parameter list changes your code doesn't break.


Do I always use them, hell no!

I have a few instances where I have needed the flexibility of a dynamic sql statement because of the amount of sorting and filtering combinations needed. Having to code this flexibility into a sproc or many sprocs would have been very difficult and taken for time.

Robert Walker

# re: MVP!@ Sunday, April 11, 2004 8:36 PM

Congratulations! And welcome!

Slavo Furman

# re: MVP!@ Monday, April 12, 2004 4:00 AM

Congrats! That's cool!

SpiderMan

# re: MVP!@ Monday, April 12, 2004 11:08 AM

I guess Microsoft if following the old adage "keep your friends close but your enemies closer" ;) I'm kidding of course. Congrats and keep fighting the good fight.

Cadmium

# re: Serious ASP.NET Editor flaw lives on in VS.NET 2003@ Monday, April 12, 2004 12:18 PM

im very dissapointed. vs.net is supposed to be a "production ready" IDE. i've lost hours to this bug. if it were up to me, i'd be doing php in jedit.

johan

# re: MVP!@ Monday, April 12, 2004 3:59 PM

Congrats! You've some of the best criticism of Microsoft and its products....keep it up. Too bad you couldn't make it to the MVP summit though...

Sriram Krishnan

# re: MVP!@ Tuesday, April 13, 2004 3:20 AM

Congrats Frans! You deserve it, enjoy it!

Joost van de sande

# re: MVP!@ Tuesday, April 13, 2004 4:00 AM

Hey Frans,

Thats totally awesome!
Gefeliciteerd!

// Ryan

Ryan Heath

# re: Marketing tools in full effect@ Tuesday, April 13, 2004 4:49 PM

Nice to see you are still putting so much time in LBLGEN and working hard for it after such a great time! Keep us informed!

Questa

# re: Marketing tools in full effect@ Tuesday, April 13, 2004 4:52 PM

This is the commercial version :) (and our main product). The old, free, open source version is no longer supported.

Frans Bouma

# re: Marketing tools in full effect@ Tuesday, April 13, 2004 8:33 PM

I got annoyed getting e-mails from my account manager at ComponentSource every time I browsed their site and told him so. Now he doesn't contact me anymore. On the other hand he also helped me find a specific component when I was under some pressure. Instead of evaluating dozens of tab controls you could try to specify some requirements and then see what they can come up with. Ah, you have decided already, but then maybe next time.

Martin Liversage

# re: Lack of Good Articles? I don't think so.@ Wednesday, April 14, 2004 5:04 AM

TrackBack

# re: Marketing tools in full effect@ Wednesday, April 14, 2004 8:34 AM

Impressive. I'd be embarassed to know how much time I spend on some sites.

Greg Robinson

# re: Marketing tools in full effect@ Wednesday, April 14, 2004 8:46 AM

Frans, best of luck in your use of the Infragistics tools. We use them in our application, and absolutely love them about half the time, and hate them the other half. I'll post something on my blog in the next few days about our experiences. Long story short, if you think you've found a bug - you probably have!

Eric G. Harrison

# re: Marketing tools in full effect@ Wednesday, April 14, 2004 8:50 AM

Eric: I bought them because of the tab control, and that's absolutely a great control. I've also moved away from the dreaded .NET grid to their grid, and it's a tough learning experience but it pays off. I found of course a glitch, but not a big one: if you define a set of columns in the DisplayLayout and you bind an ArrayList with objects to the grid, the data shows up nicely, your column definitions will too, but if you then bind an empty ArrayList to the grid, the column definitions are gone, and the next time you bind a non-empty ArrayList, you get default columns.

Frans Bouma

# re: Marketing tools in full effect@ Wednesday, April 14, 2004 6:19 PM

For some time now, I'm looking for a comparison of the Infragistics suite to the DeveloperExpress suite.
Until now - nothing found.

Robert Fuchs

# re: MVP!@ Thursday, April 15, 2004 8:06 AM

Well Done, Frans!

Couldn't have been more deserved!

/Mats

Mats Helander

# re: Serious ASP.NET Editor flaw lives on in VS.NET 2003@ Saturday, April 17, 2004 5:20 AM

The editor also has problems with inline styles:

<img style="position: absolute; top: <%= SomeValue %>" src="/img.gif">

When switching back and forth from design to html view, the 'top: <%= SomeValue %>' part gets completely removed...

Panayot Belchev

# Really complex databinding: ITypedList with weakly typed collections@ Monday, April 19, 2004 1:57 AM

TrackBack

# Interesting Links@ Monday, April 19, 2004 3:19 AM

TrackBack

# Really Complex DataBinding Article@ Monday, April 19, 2004 7:40 AM

TrackBack

# re: Really complex databinding: ITypedList with weakly typed collections@ Monday, April 19, 2004 8:22 AM

Excellent article Frans! And a great working example as well.

Jeroen

# re: Really complex databinding: ITypedList with weakly typed collections@ Monday, April 19, 2004 8:42 AM

Nice article...been looking for some decent info on this, thanks!

Scott Galloway

# re: Useless programming language constructs@ Monday, April 19, 2004 10:43 AM

the only real useless programming language in existance is turing, although my lack luster teacher insists we will go "places" with it... the only place i think im headed with turing under my belt is the slums

turing student

# re: Useless programming language constructs@ Monday, April 19, 2004 10:46 AM

Never have I been more disgusted with a programming languages. And I am certified teaching person.

Mr Floyd

# re: Nasty winforms bug@ Tuesday, April 20, 2004 10:55 AM

.NET is crap. I can code everything that winforms or webforms do with XML and XSLT and either Java or a native server back-end in a fraction of the time with a fraction of the effort, hassle, and bugs.

What was MS thinking? Why do people continue to bypass perfectly good and workable technologies to use the latest buggy insecure trash from Microsoft?

Layton Smith-Perrin

# re: Really complex databinding: ITypedList with weakly typed collections@ Wednesday, April 21, 2004 5:38 AM

I will be needing some advanced databinding stuff in the near future. So I guess this is "gefundenes Fressen". Now for reading and understanding it too. :-)

Thanks Frans !

Sven Devriese

# re: Stored procedures are bad, m'kay?@ Wednesday, April 21, 2004 8:55 AM

I have to agree more with Frans idea.
Dynamic SQL is a very very powerful programming tool.I have written A Business Platform and we use it in our Company, and it dramatically reduces development time.For example with each 'Data Entry Form' you design, you get Loading of records in a list,deleting records,automatic completion of 'primary keys' data entry, records navigation on different fields (like records creation date, or records primary key...). all these features come for free when you simply design the form, just by including one record in the database for each 'data entry page' you design. This record basically contains the tablename, table primarykey, and alternate keys for navigation. That's it. However I will not agree with Frans 100%, the extra layer-Of-Indirection that a SP gives you is very important sometimes in your programming model, but performance is not what I look for when I program SPs.

Ralph Varjabedian

# Really complex databinding: ITypedList with weakly typed collections @ Wednesday, April 21, 2004 9:51 PM

Really complex databinding: ITypedList with weakly typed collections

TrackBack

# re: Really complex databinding: ITypedList with weakly typed collections@ Thursday, April 22, 2004 2:50 AM

You are a f%$king legend!

Thank you!

Dale Anderson

# re: VS.NET Add-in contest@ Thursday, April 22, 2004 6:33 AM

Should that be "gentle"? :)

Paul Bartlett

# re: VS.NET Add-in contest@ Thursday, April 22, 2004 6:36 AM

whoops! :D. Changed. Thanks. (Weird, the spellchecker didn't bite)

Frans Bouma

# re: Really complex databinding: ITypedList with weakly typed collections@ Thursday, April 22, 2004 12:44 PM

Thanks for the article Frans.

Out of curiosity, when implementing this in a webform environment, how would you suggest keeping the datagrid contents in sync with the underlying datasource (in this case, keeping the customer objects contained within the ComplexDatabindingArrayList in sync with the datagrid for persisting back to the db)?

Mike Davidson

# re: Really complex databinding: ITypedList with weakly typed collections@ Friday, April 23, 2004 4:39 AM

Mike: the grid uses the property descriptors to retrieve data (using the property descriptor method 'GetValue') and to set data (using the SetValue method). So this is build into the property descriptor class :)

Frans Bouma

# re: Really complex databinding: ITypedList with weakly typed collections@ Friday, April 23, 2004 10:42 AM

Frans,

Thanks for the response. I think I'm having a bit of trouble presenting my question in a manner that's easy to understand.

My thinking (and yes, this is usually where the problem comes in...) is that the collection, in a web environment, will go out of scope after binding to the datagrid. Let say you are allowing batch updates to objects that reside in a datagrid (updating multiple rows and clicking save changes). On click, you're going to have to create a new customer object for each row in the grid, then create a new collection object and add each customer object to the collection. Now, I know this can't be correct, which means I'm missing something. Are you caching the original collection, or saving it in a session scope?

I'm guessing the answer to this is so blindingly obvious that I'll kick myself for bothering you with the question. I appreciate the time.

Mike Davidson

# re: Really complex databinding: ITypedList with weakly typed collections@ Friday, April 23, 2004 3:04 PM

Mike, in a webscenario, databinding is pretty much a 1-way street. So databinding is only really useful in the scenario where you're rendering the page. As you said, in a postback, everything is gone. The objects used when building the page can be stored in viewstate or session, but the binding is gone, no currency manager is keeping the control and the object together.

So in a postback you can have teh objects still, from viewstate or session (requires serializable objects) however its then not bound to the control.

Frans Bouma

# Really complex databinding: ITypedList with weakly typed collections @ Saturday, April 24, 2004 5:28 AM

Really complex databinding: ITypedList with weakly typed collections

TrackBack

# Really complex databinding: ITypedList with weakly typed collections@ Saturday, April 24, 2004 5:32 AM

Really complex databinding: ITypedList with weakly typed collections

TrackBack

# Really complex databinding: ITypedList with weakly typed collections@ Monday, April 26, 2004 4:50 AM

Really complex databinding: ITypedList with weakly typed collections

TrackBack

# re: Stored procedures are bad, m'kay?@ Tuesday, April 27, 2004 10:28 AM

I would say it is based on the requirement, if the requirement calls for a hugh application and strong enough to support on cost and dynamic sql will benefit on the long run for re-use(the so called) but for small business oriented applications I believe in sp's and they are faster in development and also caters in terms of resources, easy maintenance and makes the life easier.

vijay

# re: Really complex databinding: ITypedList with weakly typed collections@ Tuesday, April 27, 2004 3:59 PM

btw Frans you already noticed MS changed their guidelines for private member naming?

_order := orders

Weakly typed, I love it... saves a significant amount of "useless" typed collection classes all containing substantial duplicate code.

Paul Gielens

# re: Really complex databinding: ITypedList with weakly typed collections@ Tuesday, April 27, 2004 4:18 PM

No I didn't know they've changed their guidelines, the underscore is not allowed anymore? Well, I keep it, it's very useful :)

Frans Bouma

# re: Stored procedures are bad, m'kay?@ Wednesday, April 28, 2004 2:58 AM

200% disagree

vincent

# re: More on the badness of E&C and how to debug software.@ Wednesday, April 28, 2004 9:30 AM

This thread is old but I had to throw my opinion in on this...better late than never. These conversations are interesting. It reminds me of the conversations I had with a software engineer that I worked with previously. He had multiple degrees and was considered 'the developer' where we worked. In the time I worked at this company he developed one piece of software that never went live because management felt it was too complicated while we were just getting software coded, tested and out-the-door with E & C in VB6 (and it was maintainable mind you). Ultimately we're trying to solve business needs in a minimum amount of time. It seems we can agree that some people use bad programming practices but will not having E & C solve that...maybe we should pass a law against E & C ;-) Restrictions just don't stop stupid people from doing stupid things....it just causes them to be stupid in a more inefficient manner. Hopefully we can get E & C and lose the bad developers through the I.T. market downturns...maybe we could all get along then.

E & C Developer

# re: Do not read just code, learn algorithms.@ Thursday, April 29, 2004 7:21 AM

Learning from code means one is unable to or does not have the capability to understand and learn algorithm(s). Then to implement it one looks of codes written by others. Thats the reason for the popularity of sites like codeguru and codeproject.

Mustafa Ahmad

# re: Get rid of the 'file' concept for sourcecode!@ Thursday, April 29, 2004 9:16 PM

As a former Smalltalk developer, I must say very much like it (used IBM's VisualAge for Smalltalk), but I think we must look forward. I reckon the way to go right now should be adapting our current IDEs (#develop?) to work with repositories instead of mere files....maybe by starting out a related sourceforge project?

Alan Cyment

# re: Really complex databinding: ITypedList with weakly typed collections@ Friday, April 30, 2004 5:51 PM

Frans,

I've seen the video of whidbey where you can bind everything to simple classes without doing the stuff you decribed.
I guess the designer is generating this via reflection for you. I hope they didn't rewrite the whole 'binding' code (again).

Great article, and a shame MS itself doesn't document this better. I've spent hours dissecting generated typed datasets...

Marcel

Marcel van der Gragt

# re: Stored procedures are bad, m'kay?@ Saturday, May 01, 2004 12:36 AM

You miss a big point
Say you want to begin a transaction, insert a record into several tables, end trans. If it's in a SP, you pass all the data to insert as parameters. The data travels across the network or internet THEN after on the server, begin trans starts and you do all your inserts without network xport between them and end trans.
All data on the server before I start a trans is why I use SP.

Jim Kane

# re: Really complex databinding: ITypedList with weakly typed collections@ Sunday, May 02, 2004 6:50 AM

Marcel, teh code I describe is not required to perform databinding, it is required to control the databinding process, which property is readonly etc.

Frans Bouma

# Who's worse, the DOJ or the EC?@ Sunday, May 02, 2004 5:47 PM

TrackBack

# re: Really complex databinding: ITypedList with weakly typed collections@ Monday, May 03, 2004 6:46 AM

Yeah, I know. But if you wan't to build your own framework it's better to control the process yourself instead of adding of lot of code to hack the default way.

Marcel van der Gragt

# re: Really complex databinding: ITypedList with weakly typed collections@ Monday, May 03, 2004 6:48 AM

You can't control it in another way, you HAVE TO implement this interface to control it. I therefore don't really understand your sentence: "But if you wan't to build your own framework it's better to control the process yourself instead of adding of lot of code to hack the default way. "

Frans Bouma

# re: Really complex databinding: ITypedList with weakly typed collections@ Monday, May 03, 2004 10:28 AM

Frans,
I meant: I totally agree with you. I'm building a application framework which uses databinding.
With implementing ITypedList you can control the databinding.

Trying the default way, with typed datasets (or untyped) or datasets (or tables), is not very useful. I want a layer between the binding and the database access code.
Maybe it's difficult for me to explain in short. I could not found much info about the databinding process. I could found a lot about using it, but not about the process itself.

I'm still wondering if in 'whidbey' things will be changed.

Marcel

Marcel van der Gragt

# re: Nasty winforms bug@ Wednesday, May 05, 2004 2:11 PM

Has anybody found a fix for this problem or do they know if Microsoft is supposed to address this problem? I did some testing on this and the events are pretty messed up compared to VB6.

-------------------------------------------
Here is the VB6 flow of events going from Textbox1 to Textbox2

Text1_Validate
Text2_MouseDown
Text1_LostFocus
Text2_GotFocus
Text2_Click

Here is the VB6 flow of events going from Textbox1 to Listview1

Text1_Validate
Listview1_MouseDown
Listview1_ItemClick
Text1_LostFocus
Listview1_GotFocus
Listview1_Click

None of the events are fired after the Validate event if it is cancelled.

Here is the .NET flow of events going from Textbox1 to Textbox2

Text1_LostFocus
Text1_Leave
Text1_Validating
Text1_Validated
Text2_Enter
Text2_GotFocus
Text2_MouseDown
Text2_Click

If the Validating is cancelled then

Text1_LostFocus
Text1_Leave
Text1_Validating


Here is the .NET flow of events going from Textbox1 to Listview1

Listview1_MouseDown
Listview1_SelectedIndexChanged
Text1_LostFocus
Text1_Leave
Text1_Validating
Text1_Validated
Listview1_Enter
Listview1_GotFocus
Listview1_Click

If the Validating is cancelled then

Listview1_MouseDown
Listview1_SelectedIndexChanged
Text1_LostFocus
Text1_Leave
Text1_Validating

Dave Johnson

# Fun bug@ Thursday, May 06, 2004 12:49 PM

Took me over 20 mins to find this post and I'm glad I did. What a POS that M$ doesn't fix a problem they knew was there. Still no work-arounds, patches, or fixes for this problem one year later? WTF?

Don

# re: MVP!@ Thursday, May 06, 2004 1:01 PM

Congratulations! Welcome to the MVP community :-)

Christian Nagel

# Fun bug 2...wish I could...@ Thursday, May 06, 2004 1:20 PM

Man this issue really bothers me as I think about it more. What kind of a development team says "ah, the bug is just too big to fix?" Seriously, think about development you've all done and I'm sure you've never said "well, it's just too big of a bug to bother with - I'll fix the small ones, though." I don't care how big of a bug it is! If it's a known HUGE bug (like it obviously is) THEN MAKE IT WORK!

Don

# Use the tool that does the job the best@ Friday, May 07, 2004 6:59 AM

I understand that existing systems have stored procs for inserts, updates and deletes, so you can't expect people to go and redo their work.

I am a firm beleiver that you use the technology that will be the easiest to maintain in the long run for a specific job NOT the technology that will give the best results neccesarily. Maybe i am wrong, but as a developer i will be the one doing the work in the end.
For example Assembler and C++ is faster executing code than .Net CRL - Why don't we all use it then? Because it is harder to maintain and takes longer to do the job, So it is NOT the best tool for the job. Now why should communication to a database be any different?

Okay - Network traffic will be more in a complex piece of LLBLGen logic if your DB and Web Server is two physically different machines - so ask yourself is LLBLGen the best tool for this specific section of the job?

There are cowboys that want to hard code SQL Statements in their command objects and write Sproc for every simple DB I/O operation (This does seem to be what microsoft invisioned if you look at the .NET CommandBuilder).

Rather use the tool that does the job the best.

For selects, insert and updates - use dynamic SQL.
For Complex logic that requires information to be gathered from numerious tables with huge updates - use Sprocs if network traffic could be a problem,

Wayne Barker

# re: Stored procedures are bad, m'kay?@ Friday, May 07, 2004 8:02 AM


Quoting myself. "Rather use the tool that does the job the best." means "use the technology that will be the easiest to maintain in the long run for a specific job " as stated in my opening remark - just incase it seem like i am giving conflicting statements.

Wayne Barker

# re: Stored Procedures vs. Dynamic Queries.@ Friday, May 07, 2004 5:06 PM

As with anything else SP with dynamic SQL statements is a subject for trade-off. I believe that a relatively simple stored procedure is faster than SQL statement. Of course as it was noticed if one wrote SP that did a lot what T-SQL was not meant to do such as parsing and building string and so on it might not be a solution. The better design for a complex SP would be to break them down to a set of smaller ones and call later from the one with optional parameters. This SP would be like FACADE for others. The separation of layer is a very important thing as with SP it provides a single point for change when the database changes. SPs could be written by a designated person thus enforce their consistency. In a contrary a built-in SQL statement peppered in different places by different programmers do not provide the single point for a change. To me the major problem with SP is not a performance but the fact that they are hard to maintain. If there's not a responsible and designated person put in charge to write them but everybody in a team can do then the pool of SP soon become littered with redundant SPs with different naming conventions and so on. It is because SQL server does not allow to structure SPs in the way VS allow to structuring components in the project. I hope that this is going to change in future versions. As well as T-SQL itself e.g. allowing to write SP in c#


Ilia Chekhter

# re: Really complex databinding: ITypedList with weakly typed collections@ Saturday, May 08, 2004 10:47 AM

Frans,

First I wanted to congratulate you on an excellent article and an excellent Data Access Layer.

My questions are as follows:
1. Isn't subclassing an ArrayList bulkier than a typed collection? I know this approach saves code, but so what? Most people (I hope) auto-generate their typed collections and the extra executable size of typed collections doesn't really make a difference considering computers have a gillion gigs of RAM nowadays.

2. I agree that attributes are an extremely convenient way of specifying presentation information, but doesn't this violate the seperation of tiers?

Thanks,
Jafar

Some architectural questions

# re: Really complex databinding: ITypedList with weakly typed collections@ Sunday, May 09, 2004 5:55 AM

FOr illustration purposes I wanted to use a collection, so the ArrayList was the best approach. Any collection class would be ok

Separation of tiers is achieved on a semantical and logical level not necessarily on a class-based level.

Frans Bouma

# re: Microsoft Business Framework (MBF) delayed till 2006@ Monday, May 10, 2004 4:50 PM

Great question indeed, Frans. I would say the release date of MBF is dependent upon that of ObjectSpaces, not the other way around. So, MBF can come any time after OS has been released.
Haven't heard any of the OS team members on it recently. Who knows?

Alex Thissen

# re: Windows Update will include worm removal tools. Not that helpful@ Tuesday, May 11, 2004 2:16 AM

Enabling the firewall by default? That's not going to work either Frans... Unfortunately, most of the populace don't know that much about computers, even those working at computer helpdesks. Disabling all communication unless specifically enabled will lead to the following (already quite common) scenario:
1.) User cannot use program X because it communicates over the Internet
2.) User calls computer helpdesk
3.) Helpdesk asks: is your firewall enabled?
4.) User responds: What's a firewall?
5.) Helpdesk says: go to Control Panel -> network connections. Right click your Internet connection. Choose Properties. Go to the Advanced tab. Do you see a green "v" in the checkbox?
6.) User responds: Yes, is that my firewall? (Smart cookie this one :))
7.) Helpdesk responds: Yes it is. Now please disable it, restart your computer and try running program X again.
8.) User responds: Yes! It works! Now why did that stupid Microsoft enable that stupid firewall? Who needs a firewall anyway!?

No, human stupidity will never fail to make matters worse... Recently, I heard another suggestion: make Windows run in 3 modes: n00b, moderate and advanced. In n00b mode, you cannot run as Administrator (their goes WinAmp :( ) and Windows Update is set to automatically download and install. Will this work? No. How many people will admit they should run in this mode? Not that many, I'm afraid. Plus, the fact that programs such as WinAmp require you to run as Administrator only make it worse...

And a recent Dutch research in what people think about virusses and who's responsible for preventing them, a whopping 80% responded that either the government or the ISP is! So what should we do? Scan all network traffic you generate? If your ISP detects you're sending an e-mail with a virus attached to it, you'll be banned from sending email. If your machine is scanning for known vulnerabilities on other machines, your Internet connection is disabled. If your machine participates in a DDoS, your Internet connection is disabled. That's your ISP taking responsibility for your inaction. Now how would the general populace feel about that?

Wolfgang

# re: Windows Update will include worm removal tools. Not that helpful@ Tuesday, May 11, 2004 2:57 AM

80% claimed that? I almost find that hard to believe! But when I see how stupid people can be around computers, it seems likely again.

I say, go ahead. I read yesterday KPN had 90% of all ADSL subscribtions under control. Move those 80% into KPN and the other 20% into another ISP. I've got Demon, so I'm good! ;)

Then let KPN filter the traffic inside their network, so it won't affect the speed of OUR downloads. Then we've began to build a perfect world, from my point of view! ;)

I'm running without virus scanners for years now and never had any problems. The last time was when I took some disks from a friend at school with me.

Dennis v/d Stelt

# re: Windows Update will include worm removal tools. Not that helpful@ Tuesday, May 11, 2004 4:37 AM

Wolfgang, every program which requires an external connection from an external machine to yours, originating from that external machine, is bad and should be banned. A good firewall would block all incoming connections but can allow all outgoing connections. That's the default for XP's firewall anyway. No normal program requires an incoming connection, only server applications do. I'd say: if you know what you're doing, and setting up a webserver requires some kind of knowledge ;), you can also enable the port in the firewall. For the rest, a normal PC which is only attached to the internet doesn't need incoming connections.

Dennis: isn't demon just reselling kpn's adsl? ;)

Frans Bouma

# re: Microsoft Business Framework (MBF) delayed till 2006@ Tuesday, May 11, 2004 4:43 AM

I agree. From speaking with Microsoft guys here in Ireland the word is that MBF is definately dependent on ObjectSpaces. I was told about the ObjectSpaces delay 4 weeks before it announced but couldn't say anything until it was official. MBF (Kevin Ransom) made a request for beta testers back in March and as a result of the OS delay, this was also put on the back burner.

At this rate Visual Studio 2005 will be little more than a service pack to fix some bugs!

Marcus Mac Innes

# re: Microsoft Business Framework (MBF) delayed till 2006@ Tuesday, May 11, 2004 6:41 AM

Rumor is that Microsoft is being sued by a major vendor in the objectspaces arena which may prevent MS from shipping objectspaces at all.

anonymous

# re: Microsoft Business Framework (MBF) delayed till 2006@ Tuesday, May 11, 2004 6:48 AM

"Rumor is that Microsoft is being sued by a major vendor in the objectspaces arena which may prevent MS from shipping objectspaces at all."

Not that I know of. :) I heard rumours about a lawsuit when Objectspaces was part of the framework. Now that it isn't anymore, the rumour dissapeared.

Frans Bouma

# re: Microsoft Business Framework (MBF) delayed till 2006@ Tuesday, May 11, 2004 8:10 AM

At this rate Visual Studio 2005 will be little more than a service pack to fix some bugs!

Which is more then enough for the time being.

Paul Gielens

# re: Why Edit & Continue is a bad thing@ Tuesday, May 11, 2004 4:38 PM

Here's the deal. Back in the early part of the 1960, 70's and 80's processing power was scheduled for things like compiling etc. This is where edit and continue woudlnt work, and wouldnt be nearly as efficient. The code SHOULD be thought out before even attempting a compile, becuase when there was an error a day was spent and time was wasted on a 'stupid' typo.

I have been coding for quite some time, and consider myself a good engineer. There are times when E&C shouldnt be used, but you put me up against another coder with the same exp. not using E&C I will develop it faster.

Everyone has to remember that opinions about not using E&C ARE OPINIONS. They dont apply to everyone, but they do apply to you.

In the end if the code is the same, and it took less time using E&C (which it will if used correctly), E&C should be used. That's not an opinion that's a fact.

Ron Barone

# re: Stored procedures are bad, m'kay?@ Wednesday, May 12, 2004 5:32 AM

I am confused now! I found this at http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfSystemDataOleDbOleDbCommandClassPrepareTopic.asp

"If the CommandType property is set to TableDirect, Prepare does nothing. If CommandType is set to StoredProcedure, the call to Prepare should succeed, although it may result in a no-op.

Before you call Prepare, specify the data type of each parameter in the statement to be prepared. For each parameter that has a variable length data type, you must set the Size property to the maximum size needed. Prepare returns an error if these conditions are not met.

If you call an Execute method after calling Prepare, any parameter value that is larger than the value specified by the Size property is automatically truncated to the original specified size of the parameter, and no truncation errors are returned.

Output parameters (whether prepared or not) must have a user-specified data type. If you specify a variable length data type, you must also specify the maximum Size."

Are Sproc's prepared or not? It does not seem to day anything about normal SQL statements only Sprocs and TableDirect.

Wayne Barker

# re: Windows Update will include worm removal tools. Not that helpful@ Wednesday, May 12, 2004 7:48 AM

Think about multiplayer gaming. If you host a session yourself, you've got to allow incoming connections... Besides, stopping incoming connections will not stop worms. Nowadays, they work through social engineering. E-mail, IM, you name it. Can't stop that. The drones that are used in DDoS often start sessions with IRC chatrooms to receive commands. No incoming connection required. No, having a simple firewall block all incoming traffic won't solve a thing. Virusmakers will make the viruses smarter, that's all...
BTW, Dennis, not running a virusscanner and not noticing anything out of the ordinary doesn't mean you don't have any viruses. Please, do us all a favor and install one. No matter how intelligent you are, you're computer is not and will accept commands from anyone, not just you.

Wolfgang

# re: Really complex databinding: ITypedList with weakly typed collections@ Wednesday, May 12, 2004 9:44 AM

I've been using this method for a while and I've hit a wall: How do you change the DisplayName property of the PropertyDescriptor? This method isn't much good unless you can customize the names of the columns which appear in a bound grid. Should I subclass the Descriptor?

Jafar

# re: Really complex databinding: ITypedList with weakly typed collections@ Wednesday, May 12, 2004 9:50 AM

Where the descriptors are created, you can also create instances of your own subclass of a descriptor or set the DisplayName property based on a value from a table for example.

Frans Bouma

# re: Windows Update will include worm removal tools. Not that helpful@ Wednesday, May 12, 2004 10:01 AM

The average user isn't technical savvy enough to host online games, trust me.

Worms via email, ok, these can be hostile. However worms ala sasser and msblaster and other nasties which will emerge in the future will not be able to infiltrate a system, now they can, every windows box without port filtering or firewall has port 137-139 open to the internet, for no reason.

Frans Bouma

# re: [OT] Chernobyl, our pompei@ Wednesday, May 12, 2004 12:46 PM

This website is aswome! She got past the check poitnt, special permission, her dad is a goverment worker in Chernobyl. This website explains alot. Creepy story.

None

# re: Windows Update will include worm removal tools. Not that helpful@ Thursday, May 13, 2004 8:05 AM

With tools like GameSpy Arcade, setting up online multiplay games is easy. You don't need to know anything about computers/network infrastructure. It's all handled by nifty little tools like GameSpy Arcade (http://www.gamespyarcade.com)...

True, it's not like people should NOT run firewalls :) It's just not enough. Viruses like Sasser and MSBlaster are childsplay. The real nasty stuff is delivered through social engineering. That's even big business. Spammers pay huge amounts of money to people that have networks of drones that can be used to deliver spam. Also, these networks are used in DDoS attacks that, to setup "anonymous" hack attempts (there's a trail, but that leads to a drone) and who knows what. Compared to that, having your computer shutdown at random intervals is no more than a nuisance.

Wolfgang

# re: Stored procedures are bad, m'kay?@ Thursday, May 13, 2004 3:24 PM

ds

ds

# re: Really complex databinding: ITypedList with weakly typed collections@ Thursday, May 13, 2004 5:02 PM

I subclassed the PropertyDescriptor and overrided the DisplayName property but the datagrid (WinForms) does not use it in the column heading. Using watches I double and triple checked to ensure that the subclass of the PropertyDescriptor's DisplayName was correct before being fed to the datagrid. Unfortunately this did not work and it just displayed the property name in the datagrid column heading. I can only conclude that for some idiotic reason it always uses the Name property instead of DisplayName. Is there any way around this?

Using the excellent tool .NET Reflector I waded through the System.Data namespace IL code and determined that they used a subclass of PropertyDescriptor called DataColumnPropertyDescriptor. It doesn't override DisplayName though, instead deferring to the default implementation provided in its MemberDescriptor superclass. It just stores the member name passed to its constructor in a variable and spits it out when the DisplayName property is called. In short, I can't figure why the DataColumnPropertyDescriptor can display a different caption than the column name and I can't. Does my class need to implement IComponent perhaps?

Jafar

# re: Stored procedures are bad, m'kay?@ Thursday, May 13, 2004 7:44 PM

I really doubt anyone here has built any apps that would run any differently if they used stored procedures or not. lol!

Yohan

# re: Really complex databinding: ITypedList with weakly typed collections@ Friday, May 14, 2004 5:07 AM

I don't think IComponent has anything to do with it. However, take into account that a grid binds to a DataViewRow, not a DataRow. Perhaps the differences are located there.

Frans Bouma

# re: Microsoft Business Framework (MBF) delayed till 2006@ Friday, May 14, 2004 6:16 AM

::Not that I know of. :) I heard rumours about
::a lawsuit when Objectspaces was part of the
::framework. Now that it isn't anymore, the
::rumour dissapeared.

No, maybe not.

See, making something available for free (and under your own cost) and ruining other people's business is STILL illegal according to a lot of legislations.

Thomas Tomiczek

# re: Really complex databinding: ITypedList with weakly typed collections@ Friday, May 14, 2004 10:34 AM

Good observation. I noted that the DataRowView implements the ICustomTypeDescriptor interface. Turns out that this interface implements many of the functions implemented by the ITypedList interface including the all-important GetProperties method. "Ah-hah" I thought. So I implemented the interface and moved the code that generated the property descriptors from the collection to the object and ran the program. I got the exact same result. The column names were still using the Name property instead of the DisplayName property. Keep in mind that I confirmed using watches that the display name is correct before I send the collection of property descriptors to the grid. I also know that the grid is using my property descriptors because I was successfully able to alter the order of the columns. To make matters worse, in DataRowView this method cannot be decompiled because it is in native code.

I don't mean to treat you like technical support but I can't think of anyone more qualified to help me explain how to bind a business object to a grid. :-) Is there an alternate way of accomplishing this that I am missing? I know that including the Serialization Attribute in a class allows the grid to display the properties of a plain vanilla class but there doesn't appear to be way of controlling the process more finely than defining which properties are displayed or not. Surely there must be _some_ way of avoiding the System.Data namespace altogether?

Jafar

# re: Really complex databinding: ITypedList with weakly typed collections@ Friday, May 14, 2004 2:08 PM

I also discovered that the HiddenForDataBinding attribute is not necessary. You can use the Browsable attribute in the System.ComponentModel namespace to ensure that a property does not show up in a grid.

Jafar

# re: Really complex databinding: ITypedList with weakly typed collections@ Friday, May 14, 2004 2:56 PM

Browsable(false) doesn't hide it in the webgrid...

I don't know what causes the behaviour, but isn't it so that column captions are set using tablestyles? How would someone set a column caption with solely a datatable?

Frans Bouma

# re: Now, for the people with an XBox...@ Friday, May 14, 2004 3:51 PM

Yeah, that's seriously amazing. PGR2 and RSC2 will be keepin' me busy in the meantime. ;)

Drew Marsh

# re: Now, for the people with an XBox...@ Friday, May 14, 2004 3:53 PM

that rocks! I was never into racing games, but this is something I can't pass up!

marko rangel

# re: Oracle 9i is already generations ahead and shows a .NET flaw.@ Monday, May 17, 2004 7:31 AM

"Oracle 9i also showed me a severe flaw in .NET which can only be solved by Yukon which is a year away" - What is this flaw?

Wayne Barker

# re: Oracle 9i is already generations ahead and shows a .NET flaw.@ Monday, May 17, 2004 7:36 AM

User defined types can't be loaded into datasets/tables. Oracle development focusses a lot on these custom types, but you can't use them in .NET

Frans Bouma

# re: Now, for the people with an XBox...@ Monday, May 17, 2004 8:18 AM

Wow, nice! I can use my XBox again!

questa

# re: Now, for the people with an XBox...@ Monday, May 17, 2004 8:20 AM

hehehe noooooo questa, it's a PS2 only game :) the "For all people with an XBox.." is meant as a sarcastic joke :)

Frans Bouma

# re: Do not read just code, learn algorithms.@ Monday, May 17, 2004 8:45 AM

where's the code??

codeReader

# re: Now, for the people with an XBox...@ Monday, May 17, 2004 1:15 PM

That's OK Frans, I can't WAIT for the PS2 versions of Doom3 and Half-Life 2. ;)

Scott

# re: Now, for the people with an XBox...@ Monday, May 17, 2004 1:58 PM

heh :) Thankfully we have PC's for those :P

Frans Bouma

# re: Now, for the people with an XBox...@ Monday, May 17, 2004 4:27 PM

Although, to be honest Frans, it's much cheaper to get an XBox than to get a Doom3/HL2-viable videocard :) A GeForce 6800 or ATI X800 will set you back somewhere in the 300-500 dollar/euro range, while an XBox is available for around 150 dollar/euro!

Still, playing an FPS with a controller? Not sure I want to find out after years of mouselook :)

Jeroen

# re: Now, for the people with an XBox...@ Monday, May 17, 2004 5:06 PM

Good point! Indeed something to think about. I'm not sure if Aglaia (my wife) tolerates another console in the room (hehe) but the XBox controllers are nice (they have a 'trigger' button like you're firing a real weapon). However, online play is also something to consider, mods etc.. I think a new videocard and the PC versions is worth the money... FPS with kb and mouse is more comfortable...

Frans Bouma

# re: Oracle 9i is already generations ahead and shows a .NET flaw.@ Tuesday, May 18, 2004 3:56 AM

User defined types - is this like the interbase \ firebird Domains? Arn't these User defined types based on underlying types like strings, intergers ex.?

I guess it would be nice to know what these types are in .Net so that it could do the validation of the value according to the Data Type before posting it to the Database?

Frans wrote: "which can only be solved by Yukon which is a year away" - How would Yukon fix this problem - Is it going to support User defined types?

Wayne Barker

# re: Now, for the people with an XBox...@ Tuesday, May 18, 2004 9:04 AM

Dammit, you got me there Franse! Dam joke! :)

questa

# re: Oracle 9i is already generations ahead and shows a .NET flaw.@ Tuesday, May 18, 2004 3:06 PM

User defined types are classes like you'd use in .NET, only you can use these to define a type in a table.

Yukon will support User defined types.

Frans Bouma

# re: Service pack 6 for Visual Studio 6.0 released@ Wednesday, May 19, 2004 8:43 AM

Frans,

your URL to the list of bug fixes is incorrect (its the same link to the service pack). Here is the correct URL (it refers to a knowledgebase article):

http://support.microsoft.com/default.aspx?scid=kb;en-us;834001

Kal El

# re: Service pack 6 for Visual Studio 6.0 released@ Wednesday, May 19, 2004 8:55 AM

Frans,

your URL to the list of bug fixes is incorrect (its the same link to the service pack). Here is the correct URL (it refers to a knowledgebase article):

http://support.microsoft.com/default.aspx?scid=kb;en-us;834001

Kal El

# ObjectSpaces not until Longhorn@ Friday, May 21, 2004 11:26 PM

TrackBack

# re: The REAL Reason Behind the ObjectSpaces Furor@ Saturday, May 22, 2004 11:42 PM

TrackBack

# re: Objectspaces will be merged into WinFS@ Sunday, May 23, 2004 1:11 PM

The way I hear it is that MBF *will* be using ObjectSpaces and the MBF delay is the reason that OS is being delayed also.

So, that would mean that MBF will be using OS.

Johnny Hall

# re: Objectspaces will be merged into WinFS@ Sunday, May 23, 2004 4:31 PM

The "old" PDC presentations showcase the MBF on top of ObjectSpaces. I remember it even being explicitly mentioned in a MBF talk.

Paul Gielens

# re: Marketing tools in full effect@ Sunday, May 23, 2004 7:25 PM

Frans,

What was the deciding factor for you pick that Tab control? Which features were you sold on?

Denis Basaric

# re: RSS Feeds at weblogs.asp.net should be static@ Monday, May 24, 2004 7:59 AM

No need for a file, Frans,

Just what is called OutputCache :-)

Not like this is not proposed standard procedure for ASP.NET applications.

Thomas Tomiczek

# re: RSS Feeds at weblogs.asp.net should be static@ Monday, May 24, 2004 8:01 AM

With caching there is always the possibility of stale data, however it's usually worth the chance of getting stale data.

Phil Winstanley

# re: RSS Feeds at weblogs.asp.net should be static@ Monday, May 24, 2004 8:10 AM

Ah the output cache, hadn't thought of that (is that shareable between webservers btw? files are easier shared with a simple service)

Stale data is unavoidable, as rss is a pull mechanism: when you check your rss reader, the actual state of all the blogs subscribed might be different, you only know the actual state when you refresh constantly ;)

Frans Bouma

# re: RSS Feeds at weblogs.asp.net should be static@ Monday, May 24, 2004 10:14 AM

He might be writing the content directly to the stream via a HTTP handler, in which case there isn't any output to cache. If that's the case, it should be changed to either a static file or an aspx page with caching.

The output cache isn't something that's "clusterable", but it doesn't matter since all the machines on the cluster would be pulling from the same datasource they would all cache the same content. No need to replicate a static HTML file between the nodes. Even just setting the cache to 5 or 10 seconds would probably show a huge performance increase given how many hits the main feed gets.

Of course cutting down on the number of bloggers in the site would help too.

Scott

# Objectspaces will be merged into WinFS@ Monday, May 24, 2004 10:59 AM

TrackBack

# RE: RSS Feeds at weblogs.asp.net should be static@ Monday, May 24, 2004 12:34 PM

The feeds are served from the cache. Caching feeds to disk might be a future version, but it is not high on the list just yet.

Scott Watermasysk

# Take Outs 24 May 2004@ Monday, May 24, 2004 12:43 PM

Take Outs 24 May 2004

TrackBack

# re: Stored procedures are bad, m'kay?@ Monday, May 24, 2004 1:26 PM

So basically this article has gotten it wrong:
http://www.databasejournal.com/features/mssql/article.php/3067071

and this one:
http://www.winnetmag.com/SQLServer/Article/ArticleID/7446/7446.html

or this one (from the horses mouth):
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnsql2k/html/sql_queryrecompilation.asp

another one from the horses mouth:
http://support.microsoft.com/default.aspx?scid=kb;en-us;Q243586

how does SQL Server know which execution plan to call in the case of dynamic sql? executing a d-sql statement generates an execution plan that gets cached, then how does it get called again? tokens?

Enrico

# re: Stored procedures are bad, m'kay?@ Monday, May 24, 2004 2:58 PM

Am I must be missing something. If you have over a half a dozen fields that can be choosen on a form, regardless of whether or not one uses Stored proc or O/R mapper (with parameters), the plan will never be cached, right?
select where thisdata
select where thisdate to thatdate
select where company and thisdate
select where saleman, company, thisdate
and on and on -
O/R is just less code headache supposedly , yes

Penguwin

# re: RSS Feeds at weblogs.asp.net should be static@ Tuesday, May 25, 2004 10:21 AM

scott... not high on the list? you should reconsider that statement.

and why couldn't you use a static file on a network share for the web servers... IIS caches static files in memory, so network traffic is basically minimumal for the static case

for instance, weblogs.asp.net/rss virtual directory points to like \\domainhost\rss which contains a single file, rss.xml. all the webservers get a domain aspnet account that has read/write access to that file, and when a stale condition is detected, have one of the webservers rewrite it...

and I've encountered that timeout issue myself... it seems kinda unprofessional... but then again, my website is currently offline... :-(

Eric Newton

# re: Does SOA require Object-Message mappers? It depends.@ Wednesday, May 26, 2004 12:20 AM

Going way back to Rebecca Wirfs-Brock and thinking about design from the perspective "Classes, Responsibilities, and Collaborations"... in most any large scale system there will be some objects performing "management" or "coordination" responsibilities, some are simply "information holders", some are "actors" that perform operations. Any project will have some domain modeling for the data, and then will divide "responsibilities for doing" among the domain objects and the managers, etc. Trying to cram all of the responsibilies into the domain objects or into the managers and actors probably means you've not got an optimal balance between cohesiveness and coupling.

Casey Mullen

# re: O/R mapping BOF at TechEd Europe 2004!@ Wednesday, May 26, 2004 12:36 PM

Would you be our host then Frans?

Paul Gielens

# re: O/R mapping BOF at TechEd Europe 2004!@ Wednesday, May 26, 2004 12:41 PM

Yes, I'll be your host :)

Frans Bouma

# re: O/R mapping BOF at TechEd Europe 2004!@ Wednesday, May 26, 2004 4:17 PM

Sucks I can't be there, but I DID vote! :)

Dennis v/d Stelt

# re: O/R mapping BOF at TechEd Europe 2004!@ Wednesday, May 26, 2004 4:21 PM

Doesn't CMG finance this for you?

Thanks for voting! :)

Frans Bouma

# re: O/R mapping BOF at TechEd Europe 2004!@ Thursday, May 27, 2004 7:34 AM

Bummer, won't be there. What about a live webcast? ;)

Paul Gielens

# re: O/R mapping BOF at TechEd Europe 2004!@ Thursday, May 27, 2004 3:31 PM

They might, but as you might know from my own blog, I've got a baby that's about three months old when TechEd is and I can't leave my wife with such a small child for 5 days. Even when I travel to the TechEd from home every day, I won't be there for the evening.

And I don't know if you've got some kids, but believe me, they aren't nice those first three months, I they don't last longer. I have another small child. Luckely enough (I thought) the smallest was asleep at around 19:00 hours, which never EVER happens. So I put my older one to bed, thinking I might get something done behind the pc. When I close the door, they both begin to cry. So I tell the older one she can't cry and must sleep, but she's so small, so doesn't understand that too well! ;)

After the smallest almost chokes in her crying, I pick her up and sit with here for half an hour. Funny thing is, (dirty minds skip the next sentence) they always want something in their mouth and when you're lucky, they want a "speen" (what's the english word for that?!) Our youngest doesn't she only wants your pinky. So one hand to hold her, the other with your pinky in her mouth.

After half an hour I bathed her, normally, she gets really sleep from bathing. You sit with her for fifteen minutes, take her to bed and most of the time, they fall asleep. Not this time. She begins to cry so hard, getting really upset and all, that she almost really choked in it.

From that moment on, I had to walk around with her, shaking her a bit. When I stopped, she began to cry, when I put her down, she begins to actually scream!!!

So I had to wait for about an hour, gave her her bottle of milk, which is normal for this time (she's about 9 weeks, any younger and the time is about 23:00 hours, now it's about 21:00 hours) and put her to bed. It's now 21:29 and she's finally asleep.

This is really, _really_ frustrating!!! :)

But after this period, it's so much fun, I can recommend anyone to have children!!! Really! It's just these months that totally SUCK BIGTIME!

You might think, why write this all down? After explaining why I can't/won't go to TechEd, I just HAD to write this down as an example, because I'm still frustrated... ;)

Now I'm gonna do some cool stuff behind my PC!

Dennis v/d Stelt

# re: O/R mapping BOF at TechEd Europe 2004!@ Thursday, May 27, 2004 4:52 PM

Dennis: hmm :) No I don't have kids and I also don't want them (neither does my wife, so that's not a problem ;)). But I'm sure it's not such a problem as you try to make it to be ;)

Frans Bouma

# re: O/R mapping BOF at TechEd Europe 2004!@ Friday, May 28, 2004 4:14 AM

C’mon shut up (err sorry), be quit… please. How many times do I have to repeat myself! You ought to know by now that daddy is a nerd, no not N.E.R.D, a computer nerd that is, yes a real one! Daddy thus needs QUIT TIME when sitting behinds it’s computer. Longhorn really sucks up my concentration you know. You know daddy acknowledges in order to get some, mommy needs to be in a good mood 24/7. You now understand why daddy needs a helping hand in order to accomplish just that? Mommy is happy when you two are happy! Happy != crying, yes in VB that’s Not. You both know this can only be accomplished with you two STOP WINING EVERY F* I TURN MY BACK ON THE DOOR.

Sleep tight my lovely children :D

Ps: Ok I got carried away, having a day of. Dennis, you’re excuse is far more better then mine. Hope that takes away some frustration about not being there ;)

Paul Gielens

# re: Here's a (big, bad) difference between VB.NET and C#@ Friday, May 28, 2004 5:55 AM

This should work, right?

public interface Base
{
void foo();
}

public class Derived1 : Base
{
void Base.foo()
{
Console.WriteLine("Derived1");
}
}

public class Derived2: Derived1
{
public void foo()
{
Base b = (Base)base.MemberwiseClone();
b.foo();
Console.WriteLine("Derived2");
}

}

So, wouldn't this be easier?(Kindly correct me if I've misunderstood s'thing)

Krishnan

# re: Here's a (big, bad) difference between VB.NET and C#@ Friday, May 28, 2004 6:23 AM

Geez. I forgot its VB.Net counterpart! Here it is:

Interface Base
Sub Foo()
End Interface

Class Derived1
Implements Base

Private Sub Foo() Implements Base.Foo
Console.WriteLine("Derived1")
End Sub
End Class

Class Derived2
Inherits Derived1


Public Sub Foo()
Dim x As Base
x = Me
x.Foo()
Console.WriteLine("Derived2")
End Sub
End Class


And you can test the code with a Module:

Module Module1

Sub Main()
Dim x As New Derived2
Dim i As Base
i = x
i.Foo()
x.Foo()
Console.ReadLine()
End Sub

End Module

Krishnan

# re: Here's a (big, bad) difference between VB.NET and C#@ Friday, May 28, 2004 6:27 AM

And well...there's so many good things about C# here that am compelled to ask if there's any equivalent of the MyClass keyword of VB .Net in C#.

Thanks
Krishnan

Krishnan

# re: Serious ASP.NET Editor flaw lives on in VS.NET 2003@ Friday, May 28, 2004 8:34 PM

Thanks for posting info about this bug. It's been driving me absolutely nuts. At first I thought I didn't have my IDE settings configured properly. Now I know that it's a .NET bug and others have been going through the same frustration as me.

Kevin

# re: Weblogs.asp.net / .Text screensaver!@ Monday, May 31, 2004 12:34 AM

Cool, but better have multiCPU, that way the machine can do some work other then running ss.

ZRT

# .TEXT Performance Woes@ Tuesday, June 01, 2004 3:01 PM

An interesting post from Frans Bouma regarding performance at weblogs.asp.net. Rather than reusing any of the existing .NET content management systems (or blog engines), I chose to write my own. I considered using SQL for about, well, 2 minutes, an

TrackBack

# re: RSS Feeds at weblogs.asp.net should be static@ Tuesday, June 01, 2004 9:38 PM

I'm not sure I see a huge benefit to caching from disk vs the current memory cache. The current implementation does not go to the database for each request. It is stored in the ASP.NET Cache object until the data changes. Then it's recalculated and re-cached on the next request.

Erv Walter

# re: Really complex databinding: ITypedList with weakly typed collections@ Saturday, June 05, 2004 9:17 PM

Any thoughts on whether it would be possible to return the ComplexDatabindingArrayList from a web service and get it to bind to a control.

So far, I haven't had any luck yet getting it to work.

PJ

# re: .NET Tool/Control vendors/creators: new directory site: www.developerfood.com!@ Sunday, June 06, 2004 7:26 AM

err. your own tool isn't listed :D

Paul Gielens

# re: .NET Tool/Control vendors/creators: new directory site: www.developerfood.com!@ Sunday, June 06, 2004 8:45 AM

A good complement for http://SharpToolbox.com">http://SharpToolbox.com as SharpToolbox doesn't list controls (except for charting).
By the way, the http://SharpToolbox.com">http://SharpToolbox.com directory is getting close to 500 tools, libraries and add-ins! :-)

Fabrice

# re: .NET Tool/Control vendors/creators: new directory site: www.developerfood.com!@ Sunday, June 06, 2004 8:46 AM

Seems there is a bug with .Text

Fabrice

# re: .NET Tool/Control vendors/creators: new directory site: www.developerfood.com!@ Sunday, June 06, 2004 9:15 AM

Paul: not yet :) It's in 'review' :) (listing will be up within a day or so. The site's DAL is made with LLBLGen pro BTW.

Frans Bouma

# Copying an input and pasting in file to modify later, .NET editor changes the ids of controls!!@ Sunday, June 06, 2004 5:14 PM

Please help me turn this feature off! When I paste an <input/> with an id attribute, the .NET editor replaces the id with a unique one, even though I am going to delete the other part, or use it in a modified way.

Sam

# BoF@ Sunday, June 06, 2004 9:38 PM

Happy to have you on board and looking forward to see you in Amsterdam ;-)

Damir Tomicic

# re: Well, it's not Google, but it works...@ Monday, June 07, 2004 1:46 AM

TrackBack

# re: .NET Tool/Control vendors/creators: new directory site: www.developerfood.com!@ Tuesday, June 08, 2004 9:04 AM

Nice site, hope there will be listed some nice and free tools.

And good luck with reviewing! :)

Joost

# re: Really complex databinding: ITypedList with weakly typed collections@ Tuesday, June 08, 2004 10:25 AM

Like some other readers, I am trying to bind a strongly typed collection to a WinForm datagrid. I am having problems applying styles to the datagrid. When I say having problems, I mean it is not doing it at all.

I am already using the hidden attribute to mask columns that I do not want to display, but when I try using code such as :

DataGridTableStyle myDataGridTableStyle = new DataGridTableStyle();
myDataGridTableStyle.GridColumnStyles.Clear();
DataGridTextBoxColumn myDataGridTextBoxColumn = new DataGridTextBoxColumn();
myDataGridTextBoxColumn.MappingName ="Version";
myDataGridTextBoxColumn.HeaderText = "Steve";
myDataGridTextBoxColumn.Width = 150;
myDataGridTableStyle.GridColumnStyles.Add(myDataGridTextBoxColumn);
this.dataGrid1.TableStyles.Add(myDataGridTableStyle);
myDataSource = Tellermate.DataAccess.DAL.ApplicationVersionData.GetApplicationVersionList( connectionString );

this.dataGrid1.DataSource = myDataSource;

It does not change the header to "Steve" event though "Version" is one of the public properties exposed. Am I missing something really stupid here?

Steve Haeney

# re: Here's a (big, bad) difference between VB.NET and C#@ Tuesday, June 08, 2004 10:34 AM

There is another way (there is always another way!) Krishnan's example is OK but has the caveat that the base class implement the Foo method as private, which may not suit. My way is not really perfect as it requires a base class to declare the implemented interface method as overridable - which may be a bad thing and something you want to avoid. A base class shouldn't really have to know how a sub class is going to do things.

But if you must redefine the code for an implemented method this will work.

It would be nicer if you didn't have to. Why, Microsoft, are we still having to kludge these things! Shades of VB6 collection all over again...

Interface IBase
Sub Foo()
End Interface

Class BaseClass
Implements IBase

Public Overrideable Sub Foo() Implements IBase.Foo
console.Writeline "BaseClass.Foo"
End Sub

End Class

Class SubClass
Inherits BaseClass

Public Overrides Sub Foo()
Mybase.Foo() '<-- optional
console.WriteLine "SubClass.Foo"
End Class

Bruce Chapman

# re: Stored procedures are bad, m'kay?@ Wednesday, June 09, 2004 3:17 AM

TrackBack

# re: Stored procedures are bad, m'kay?@ Wednesday, June 09, 2004 3:17 AM

TrackBack

# re: Stored procedures are bad, m'kay?@ Wednesday, June 09, 2004 8:39 AM

"Now, let me add something about performance here. Say, you have a database with 100 tables, with an average of 7 fields per table. This requires 100 update stored procedures, at least (the crUd procs). These 100 procedures will have on average 7 parameters to update all fields at once, because you can't create optional update statements in stored procedures. You can't create stored procedures for all possible combinations either, that would require 100*7! procedures, which is quote a lot. A component which will create the SQL on the fly will tailor the UPDATE query to the job it has to do, for example updating that single varchar field in a row with 2 blob fields. The blob fields aren't passed to the database again, because that field isn't updated. Another nice thing about creating SQL on the fly is that you can create the WHERE predicate on the fly. Foreseeing every possibly WHERE predicate for an UPDATE stored procedure is undoable. You can fall back to optional parameters, but that will do you no good either, because COALESCE isn't that great when it comes to performance"


Somewhat of a false statement. You can create a single sp for selects and one for updates that will allow you to pass in or get back only the records you need.

Example

Create proc _usp_me

@iServiceID int = null
@iServiceNm varchar(50) = null

as

set nocount on

select
ServiceID
ServiceNm

from
tblMe

Where (IsNull (@iServiceID, ServiceID) = ServiceID and
(IsNull (@ServiceNm, ServiceNm) = ServiceNm

SMO

# re: Stored procedures are bad, m'kay?@ Wednesday, June 09, 2004 9:17 AM

Sure you can, but that is very slow. See:
http://weblogs.asp.net/fbouma/archive/2003/05/14/7008.aspx
and:
http://weblogs.asp.net/fbouma/articles/7049.aspx

Frans Bouma

# re: .NET Tool/Control vendors/creators: new directory site: www.developerfood.com!@ Friday, June 11, 2004 11:14 AM

It you want a control, check out the gallery at asp.net. Check out also the workspaces at gotdotnet.

I am interested in any site that lists free or cheap (as in under $50) asp.net goodies.

Abdu

Abdu

# re: .NET Tool/Control vendors/creators: new directory site: www.developerfood.com!@ Friday, June 11, 2004 11:20 AM

I went to developerfood.com and found very few listings. This is a common problem with new directory sites. You need to work on it and fill it up before telling the public about it.

I go to such site and what happens? I don't find interesting and beneficial. I tell myself the site will take time to be usable and eventually I forgoet about the site.

It needs to be an attention grabber from the very beginning... ie; worth bookmarking.

Abdu

Abdu

# re: Serious ASP.NET Editor flaw lives on in VS.NET 2003@ Friday, June 11, 2004 5:19 PM

<a href="http://weblogs.asp.net/MikhailArkhipov/archive/2004/05/16/132886.aspx"> Here is a more detailed explaination</a>

Phillip

# re: It's released! LLBLGen Pro is gold! The next-gen O/R mapper for .NET.@ Sunday, June 13, 2004 3:41 PM

Ahhhh! it's so awfull when you try to do something and you discover that it exists at least 10 times better than you've dreamed of :)

Congratulation for your gourou-grade application & blog, seems to really be gold!

Anyway I will try to do it my way for my (small) needs

PioPio

# Very well done@ Monday, June 14, 2004 5:33 AM

I looked for a decent article about ITypedList in MSDN, and i couldn't find one
This is very well done..it helped me a lot

Liviu Uba

# re: Stored procedures are bad, m'kay?@ Monday, June 14, 2004 5:54 AM

Since this has come back to life.
Here are some more links
http://www.sommarskog.se/dyn-search.html
http://radio.weblogs.com/0101986/stories/2003/11/12/whenDidDynamicSqlGetSuchABadName.html

W. Dietrich

# re: Stored procedures are bad, m'kay?@ Monday, June 14, 2004 6:34 AM

Valid arguments can be made for both sides of the issue. See: http://www.sql-server-performance.com/stored_procedures.asp

Duane Urban

# re: Serious ASP.NET Editor flaw lives on in VS.NET 2003@ Monday, June 14, 2004 5:29 PM

Man, this bug drives me craaazy! Maybe Microsoft should take a look at Dreamweaver or GoLive, and see how a proper editor will never alter your formatting.

murk

# SQL Optional Variables@ Wednesday, June 16, 2004 3:05 AM

TrackBack

# SQL Optional Variables@ Wednesday, June 16, 2004 3:07 AM

TrackBack

# re: TechEd 2004 Europe: O/R mapping BoF session scheduled!@ Wednesday, June 16, 2004 4:43 AM

Do me and all other that can't make it to the TechEd a favor, record it :D

Paul Gielens

# re: Why Edit & Continue is a bad thing@ Friday, June 18, 2004 7:00 PM

As a long time business application developer (read not academic programmer) E&C is an invaluable part of programming. Both as an educational tool, and for debugging in the sense you refer to it. E&C was on of the major contributing factors in VB/C++ success, as it enabled non-experts such as yourself, rapidly develop applications. It sounds like you're a pretty hard core .NET'er... so surely you're a stanger how rapid development work in the real world. I've found .NET's (CLR) inabilty to E&C the major limiting factor in enterprise usage uptake...

to think that it's only use is to enable lesser programmers to debug by trial and error is a purely elitest perspective. and for stating, you've made an ass out of yourself.

As Ron (Above) noted, if the code is that same in the end, and it takes less time, then it's better.

what a 'tard!

Eric Schleicher

# re: Why Edit & Continue is a bad thing@ Saturday, June 19, 2004 4:05 AM

"E&C is an invaluable part of programming. "
Proof it. This is just a claim.

"Both as an educational tool, and for debugging in the sense you refer to it. "
Educational tool perhaps but if you want a good educational tool, you need a tool especially made for education. For debugging as I refer to it, I don't see it as an invaluable tool as I state that the cases in where you CAN USE E&C are pretty slim.

"E&C was on of the major contributing factors in VB/C++ success, as it enabled non-experts such as yourself, rapidly develop applications."
Proof it, again a claim.
C++ success was not based on E&C, ever used it in C++? In a regular application with a few thousand lines and a couple of subprojects?

Oh and I'm not a non-expert, Eric.

"It sounds like you're a pretty hard core .NET'er"
Well, after my CS graduation I have now done 10 years of professional software development.

"so surely you're a stanger how rapid development work in the real world. "
Perhaps you should open your eyes and read about what I do for 'rapid development work' before again, claiming something.

"I've found .NET's (CLR) inabilty to E&C the major limiting factor in enterprise usage uptake... "
Based on what? Java is the no.1 platform in enterprise computing. AFAIK it doesn't have E&C, never had, never will.

"to think that it's only use is to enable lesser programmers to debug by trial and error is a purely elitest perspective. and for stating, you've made an ass out of yourself. "
Oh really? Perhaps I try to tell people how they REALLY should debug their software so they are more productive and know more knowledge. I already know a lot of that through years of experience. Others don't. That you see it as an elitist perspective is your problem, not mine. Btw, you think I'm a non-expert, a retart, a stranger to how it goes in the real world... and *I* am the elitist here? :D.

"As Ron (Above) noted, if the code is that same in the end, and it takes less time, then it's better."
IF it takes less time, then yes. No-one has proved it will take less time with E&C.

Frans Bouma

# re: VC++ New DLL project humor@ Saturday, June 19, 2004 5:51 AM

That's cool :)

Michal Chaniewski

# re: VC++ New DLL project humor@ Saturday, June 19, 2004 7:48 AM

I dont get it...

Jacob

# re: VC++ New DLL project humor@ Saturday, June 19, 2004 7:54 AM

42, hitchhikers guide to the galaxy... :)

Frans Bouma

# re: VC++ New DLL project humor@ Saturday, June 19, 2004 1:55 PM

Still dont get it! (well, guess it is now obvious I have not read the book...)

Jacob

# re: VC++ New DLL project humor@ Saturday, June 19, 2004 2:01 PM

The hitchhikers guide to the galaxy mentions that '42' is the ultimate answer. What the question is, is not mentioned. But you have to read the hitchhikers guide to fully understand it. :) It's a marvellous book, so if you haven't read it, please do :)

Frans Bouma

# re: VC++ New DLL project humor@ Saturday, June 19, 2004 2:29 PM

I knew I would find it. Been looking for it everywhere: The answer to life, the universe, and everything. And who would have thought that Microsoft had it?!

Jeff Gilbert

# re: VC++ New DLL project humor@ Saturday, June 19, 2004 2:56 PM

I vaguely remember something about a towel and a screwdriver, but for the life of me I don't remember anything about 42. It has been a few years. :-)

Sean Chase

# re: Really complex databinding: ITypedList with weakly typed collections@ Monday, June 21, 2004 11:16 PM

I have a problem with ITypedList Interface.

Supposing to change Orders collection with a DataRowCollection, how can I rappresesent the information contained in the object array of the ArrayItem property ?

thanks

Patrick Di Loreto

# re: Farbrausch releases their demo creator tool werkzeug!@ Tuesday, June 22, 2004 7:31 AM

Ah, the TRSI (http://www.trsi.org) demomaker. That brings back some fond memories. I never could get enough of that old Amiga, still collecting old cracktro mod's till this very day. It's mandatory music coding music ;-)

P.S. Don't forget the Nectarine streams http://www.scenemusic.net/

-- Marcel

Marcel

# re: Farbrausch releases their demo creator tool werkzeug!@ Tuesday, June 22, 2004 9:45 AM

I had NO IDEA Yodel broadcasted videos! This is cool! I just connected and 303 by Statix was on. Did you know he did Paper for a large part on my machine and totally crashed my pc?! That sucked big time! I wish I could run Paper again, as well as that demo from Logic Design, with the falling kid on the end. And lots and lots of other demos. I've got the Mindcandy DVD right here and it rules! :)

Oh great, Gerbera by Moppi Productions is running right now. I just witnessed a really lame video that was apparently on Discovery about a demo up north.

Anyway, I can't work anymore now, gotta watch those demos!

Dennis v/d Stelt

# re: Farbrausch releases their demo creator tool werkzeug!@ Tuesday, June 22, 2004 9:53 AM

Heh :) Hey Dennis, didn't know you were an old demoscener as well! :) Paper was indeed a very cool demo. Crashing machines on parties were a curse or something. Demoprogramming on parties was always crap: you worked for 24 hours straight on a routine that would take you 10 minutes at home... I once had to do a lot of routines again at an amiga party (Somewhere in holland 1, which I won :D ) because my sourcedisk was corrupt, aaaaarg :)

I wished I could run the old complex stuff on my current box. Dope still is one of the best PC demos ever made: 100% fake routines which trick you into believing what you see is true, like the old 3D demo I & II by Hannibal on the Amiga.

Frans Bouma

# re: Farbrausch releases their demo creator tool werkzeug!@ Tuesday, June 22, 2004 9:57 AM

Hi Frans,

Wow - the TRSI, thats bringing back memories of a misspent youth ;) There some some pretty awesome demo's around at that time! Remember "Jesus on E's"?

Anyways, I wil definately check this out, and its good to know the creator of my favourite O/R mapper is also a fan on the golden amiga era, and the demoscene!

MattWoberts

# re: Farbrausch releases their demo creator tool werkzeug!@ Tuesday, June 22, 2004 10:21 AM

Dope was indeed extremely cool, still one of my favorites. Also the track by Jugi was GREAT! How something so simple can be so great!

My demoscene nick is Compile but we didn't produce much. I was on #nlcoders a LOT but not in the really early days. We were known as Subliminal with Retrox and Exyll.

My first party was X'97. I also went twice to Wired, twice to TakeOver and once to Bizarre. Was a lot of fun. I was the only one with a drivers license so I also was the victim. But I made everyone stay awake on the journey back, because I myself would fall asleep behind the wheel if they stopped talking to me. Three days of no sleeping can't be good for you. I remember the first night always went pretty okay, untill 10am when you got really, really cold! And the smell inside those party-bunkers, when you went outside to get something to eat. A few hunderd sweating demo nerds! GREAT!

Dennis v/d Stelt

# re: Farbrausch releases their demo creator tool werkzeug!@ Tuesday, June 22, 2004 10:32 AM

"There some some pretty awesome demo's around at that time! Remember "Jesus on E's"? "
Only that I didn't like it much, but perhaps I have to see it again ;)

"and its good to know the creator of my favourite O/R mapper is also a fan on the golden amiga era, and the demoscene!"
Not only a fan, but part of it! :) I bought my Amiga 500 back in '89 and started democoding right away (already had a lot of asm experience on msx2) Produced 1 party winner demo, and a lot of mods (http://www.xs4all.nl/~perseus :)). I still have my airbrushed A500 and all the disks (although my wife wants me to throw it away ;)) and all my k1ll3r rout1nes (you know, a lot of those try out thingies that could f.e. rotate 1024 dots in full framerate on an A500, you worked on it for weeks, it was then done and no-one but our own groupmembers (Infocorner/perseus) would see it because we didn't have a graphician.

"My demoscene nick is Compile but we didn't produce much. I was on #nlcoders a LOT but not in the really early days. We were known as Subliminal with Retrox and Exyll. "
I don't recall those names. I was on nlcoders as well (Otis / Infuse Project) a lot. TakeOver were great! We won the java democompo once at takeover with stress (www.infuse.org), but there wasn't a lot of competition so that wasn't a big achievement ;).

Those looooong sleepless days and nights indeed. I did that twice (SIH 1 and 3) and never ever again ;).

Frans Bouma

# re: Serious ASP.NET Editor flaw lives on in VS.NET 2003@ Tuesday, June 22, 2004 2:50 PM

This bug has cost the company I'm working for countless man hours, and a whole crap load of $$$.

Thanks Microsoft.

John Raab

# re: Really complex databinding: ITypedList with weakly typed collections@ Tuesday, June 22, 2004 9:19 PM

Frans,

Good article.

However, there is one thing I am not clear on. It appears to me that the item that is finally returned as value to the datagrid is still strongly typed (customer, order). The datagrid looks for properties or fields on this instance using Reflection. In my situation, I don't have a strongly typed object at all. For illustration, assume that I am reading some data from a text file into my own object. The text file defines rows and columns for me. How can I get my object to work with the datagrid? Essentially, I am looking at implementing my own DataTable class.

Thank you in advance for your help.
Pradeep

Pradeep

# Farbrausch release Werkzeug, a demo creation tool@ Wednesday, June 23, 2004 3:42 AM

Farbrausch, one of the most influential demo groups around at the moment, have released a demo creation tool for your enjoyment. I used to follow the demo scene quite a bit back in the day (starting from when I...

TrackBack

# re: VC++ New DLL project humor@ Wednesday, June 23, 2004 10:11 AM

I found another occurence here (very end):

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

q:-)

Martin Plante

# re: MVP!@ Wednesday, June 23, 2004 12:38 PM

Yippy! Yet another congratulations! Welcome to the ranks... :)

Noah Coad (C# MVP)

# re: Objectspaces will be merged into WinFS@ Wednesday, June 23, 2004 2:41 PM

More information about the relationship between MBF and WinFS\Objectspaces will be emerging over the summer. See my recent post for some very initial comments.

Tim Brookins

# re: Service pack 6 for Visual Studio 6.0 released@ Wednesday, June 23, 2004 11:43 PM

Download b? cài

Nguyen Duc Dung

# re: Service pack 6 for Visual Studio 6.0 released@ Wednesday, June 23, 2004 11:43 PM

Download

Nguyen Duc Dung

# re: Service pack 6 for Visual Studio 6.0 released@ Wednesday, June 23, 2004 11:44 PM

Download

Nguyen Duc Dung

# LLBLGen Pro : New Release, New Trial Terms@ Thursday, June 24, 2004 7:10 AM

I have been using LLBLGen Pro on a project for the last couple months and have grown to see it as a tool I consider indispensable. As I've said before, it hits the sweet spot between control, power, and cost. The newest version has added some features (and fixed some bugs) and Frans has made it much easier for you to install and see just exactly what the real implications are to you and your work.

The demo version is now a 14-day trial that you can use on your own databases to see exactly w

TrackBack

# O/R Mapper - LLBLGenPro - My Favorite O/R Mapper Has a New Release - v1.0.2004.1 - Code Generation@ Thursday, June 24, 2004 8:12 AM

TrackBack

# re: LLBLGen Pro v1.0.2004.1 released!@ Thursday, June 24, 2004 12:57 PM

Congrats Frans!!!

I'll be downloading this immediately.

Chris Martin

# New version of LLBLGen Pro@ Thursday, June 24, 2004 10:22 PM

TrackBack

# New version of LBLGen Pro@ Thursday, June 24, 2004 10:24 PM

TrackBack

# re: LLBLGen Pro v1.0.2004.1 released!@ Friday, June 25, 2004 1:58 AM

tup!

Paul Gielens

# re: LLBLGen Pro v1.0.2004.1 released!@ Friday, June 25, 2004 5:31 AM

btw Frans, what's up with the versioning? One would expect 1.1.[whatever].[0] or 2.0.0.0

Paul Gielens

# re: LLBLGen Pro v1.0.2004.1 released!@ Friday, June 25, 2004 5:35 AM

This is the versioning used in the assemblies (which are signed) as well :) I could have opted for 1.0.0.x and then 1.5.0.0 or something, I chose this one, now people can see when it is released, something like "Windows 2003" :D

Frans Bouma

# My wish-list for the next Visual Studio.NET release @ Friday, June 25, 2004 12:04 PM

Refactoring:

I agree with all the comments on the need for a REFACTORING tool. If the programmer renames a method, class or variable/properties anywhere in the code these changes need to be made automatically throughout the project.


Ron

# re: 'You want a Dataset with that DAL, sir?' 'No, thank you.'@ Saturday, June 26, 2004 4:14 AM

I found DataSets and DataTables and DataRows and DataWhatever the hell else you want to be so counter intuitive that it was actually simpler to build a full blown OR mapper just so I didn't have to deal with it. Now M$ comes out with ObjectSpaces. I think they finally get it. We don't work in 'tables' - we work in objects with graph-like relationships.

ChaCha

# re: Farbrausch releases their demo creator tool werkzeug!@ Sunday, June 27, 2004 5:47 AM

X'97... hehe I remember it too. Very small rooms and I could not join Compile and Retrox the first day because of something so I joined then them the next day.

I did Bizarre two times and the rest the same as Compile.

Strange that you cannot remember Compile from #nlcoders because the guy was there 24/7 :). When I joined #nlcoders I was idle ;)

Two people that I remember because they were unique personalities are Harlequin (Arjen) and Statix.

Ramon

# re: VB.NET developers, continued@ Sunday, June 27, 2004 11:34 AM

Interesting post.

> it also gives ammo to those who think VB.NET developers are less skilled and/or less smart

<humour americanSpelling="humor">
I Once Knew A VB Developer Who Wrote So Much VB That He Started To Capitalise Each Word In His Emails.
</humour>

rob

# SQL Optional Variables @ Tuesday, June 29, 2004 1:46 AM

TrackBack

# re: LLBLGen Pro v1.0.2004.1 released!@ Wednesday, June 30, 2004 12:28 AM

Please contact me about what it would take to add DB2 support to LLBLGen as soon as you can, please!
dgoldstein@nospam.russellmellon.com

David Goldstein

# re: LLBLGen Pro v1.0.2004.1 released!@ Wednesday, June 30, 2004 4:06 AM

I'll add you to the list of people to mail when it is implemented, David :) Expect a driver around the end of August.

Frans Bouma

# re: Stored procedures are bad, m'kay?@ Wednesday, June 30, 2004 1:16 PM

Stored procedures are great, if you don't count maintainability or portability. Coding business logic into the database via SPs makes about as much sense as coding it into Web pages with ASP/JSP/etc.

A database is a datastore, not a business engine. Or is it? Why not code everything in the database? You could write 80% of many applications as a stored procedure. Why not take that approach and virtually eliminate round-trips to the database?

What do you do if code your biz logic in stored procedures and then realize that the answer to your performance problem is to process the data in-memory instead? You re-write. Call me lazy, but I hate to re-write.

Bill

# re: Why Edit & Continue is a bad thing@ Thursday, July 01, 2004 3:20 AM

it's always a laugh reading this entry and the various comments. I've bookmarked it so i can come back every few months.

cheers :+)

secretGeek

# re: Farbrausch releases their demo creator tool werkzeug!@ Thursday, July 01, 2004 11:15 AM

I've been using this package for a while and I have to say it's pretty much fully featured but there's a real lack of help files, it's mainly trial and error. I've done some interesting demos but I want to do something big with it (put a few months into it). Does anyone know where I can go to find tutorials for this package (other than the one that came with it).

Cheers,

bAnDiT

P.S. 'State-of-the-Art' by Spaceballs rox!!

bAnDiT

# re: Tech-ed 2004 impressions.@ Thursday, July 01, 2004 5:43 PM

Hi Frans! Sorry I missed your BoF session. Couldn't make it because of some other priorities. I'm really glad it went so well for you.
I was at TechEd today and should be there tomorrow. Although I did intend/promise to meet up with two "pupils" of mine (trainer-wise), I thought it might be nice to have lunch together and finally meet (if you don't mind the company of the two other guys).
If you wish to contact me by phone, you should be able to find my mobile phone number at the contact section of www.killer-apps.nl.
Hope to hear from you.

Alex Thissen

# re: Tech-ed 2004 impressions.@ Friday, July 02, 2004 12:53 AM

That's an awesome photograph... Looks much nicer than the "Warehouse" which served as the Teched San Diego mess hall..

Sean

# re: Tech-ed 2004 impressions.@ Friday, July 02, 2004 2:40 AM

Every day I'm even more sorry I couldn't come! Man do I wish I had signed up after all...

Mostly the power went down because people kept on plugging in powersockets more and more and more and more and... pooooof! about 50 to 100 computers without power.

Funny thing was, people didn't know they had to turn off their computers, so when the power went back up, suddenly so many computers instantly started up, consuming so much power again, that even more blocks were failing! Until everyone turned off their computers and they could power up again! ;)

Anyway, such events truly are fantastic to meet people like Thomas! Should've been great to see two people that are so "open into expressing themselves" together! ;)

Dennis v/d Stelt

# O/R Mapper - LLBLGenPro - My Favorite O/R Mapper Has a New Release - v1.0.2004.1 - Code Generation@ Saturday, July 03, 2004 8:42 AM

TrackBack

# re: Stored procedures are bad, m'kay?@ Sunday, July 04, 2004 5:52 PM

Anyone take note to the fact that there are many servers out there that don't split the load across multiple servers? You don't see any performance improvement if the database server and application server are running on the same hardware. So there's a justification in itself to say stored procedures don't provide any performance improvement.

Also consider what MySQL says about stored procedures:

http://dev.mysql.com/doc/mysql/en/Stored_Procedures.html

Stored procedures can provide improved performance because less information needs to be sent between the server and the client. The tradeoff is that this does increase the load on the database server system because more of the work is done on the server side and less is done on the client (application) side. Consider this if many client machines (such as Web servers) are serviced by only one or a few database servers.


So if you're running multiple web servers which talk to the same database server, you'll want to shy away from stored procedures because it will impact performance greater than writing the code on the application side in ASP, JSP, PHP, Coldfusion, etc.

So basically the difference is that less information is sent between the server and the client (web server). What difference does that make with the amount of bandwidth we have these days? The performance improvement is negligable and so basically the only reason why stored procedures have any argument whatsoever is that DBA's want to keep their jobs because a web developer could just as easily do their job and more.

And why is all this importance placed on Micro$oft $QL $erver anyway? All they care about is the bottom line. Why pay money for something that is perfectly free like MySQL? For all you SP people out there who can't live without them, they've even incorporated that into MySQL 5.0.

I managed to move the company I work for entirely off of Micro$oft. The reason for this was even though we would keep up with the latest M$ updates and patches, we would still get hacked frequently and if we weren't getting hacked, viruses were taking over our servers.

Unix and its variants were serving up the internet way before M$ was even a tiny inkling in Bill Gate's mind. It (Unix/Linux and flavors) will always be a better solution for stability, security and speed vs. M$.

Matt

# TechEd 2004 Europe - Day 2@ Monday, July 05, 2004 12:21 AM

Frans Bouma MVP creator of LLBLGen Pro gave his long anticipated BOF (BOF003) session today on Object Relational (O/R) Mapping using .NET...

TrackBack

# TechEd 2004 Europe - Day 2@ Monday, July 05, 2004 1:29 AM

Frans Bouma MVP creator of LLBLGen Pro gave his long anticipated BOF (BOF003) session today on Object Relational (O/R) Mapping using .NET...

TrackBack

# re: Stored procedures are bad, m'kay?@ Monday, July 05, 2004 12:42 PM

I've been working with SQL Server off and on since 1991. I never wrote a bunch of CRUD sprocs. To me, that always had "maintenance nightmare" and "double work" written all over it.

Sprocs are great for some things. I just wrote one that figures out the status for a piece of equipment and when it's next available. A wonderful example of putting a little bit of intelligence on the server to answer a question that can't be answered by looking directly at the equipment or schedule tables. I have no stored procedures for updating those tables. There's something called Structured Query Language which is made just for that.

James Foye

# re: Tech-ed 2004 impressions.@ Tuesday, July 06, 2004 5:40 AM

Thanks for hosting the BOF session, was very interesting. Pitty some people did not respect others opinion or the way they implemented/used O/R Mapping in their situation.

Patrick van Dijk

# re: Tech-ed 2004 impressions.@ Tuesday, July 06, 2004 5:49 AM

Thanks for the feedback, Patrick! :)

Frans Bouma

# re: Serious ASP.NET Editor flaw lives on in VS.NET 2003@ Tuesday, July 06, 2004 2:23 PM

I find myself every few months checking in on this problem in the hope that MS would do the right thing and release a fix but as always has happened over the last 2 years I am still waiting. I have always been an early adopter of new MS technologies in the past and have seen my fair share of bugs but I can't remember ever being more frustrated for such a long period of time as with this bug. With the new version on the horizon I am going to have to answer the question "Do I want to trust MS again?". Damn good question!

Dean

# re: 34!@ Wednesday, July 07, 2004 4:11 AM

Assuming you mean that it's your birthday, a very happy birthday to one of my favorite .Net bloggers.

Cheers :-)

senkwe

# re: 34!@ Wednesday, July 07, 2004 4:17 AM

wow, you're plenty older than me then ;p

HAPPY BIRTHDAY!

m7

# re: 34!@ Wednesday, July 07, 2004 4:22 AM

Thanks! :) :)

Frans Bouma

# re: 34!@ Wednesday, July 07, 2004 4:45 AM

Since I did't see any 0x in there, you're still fine :-)

Have a good one!

Frank

Frank Pistorius

# re: 34!@ Wednesday, July 07, 2004 6:34 AM

Happy birthday Frans :-)

Paschal

# re: 34!@ Wednesday, July 07, 2004 7:16 AM

Congrats ;)

Ernst Kuschke

# re: 34!@ Wednesday, July 07, 2004 7:35 AM

Happy birthday Frans!
It's also funny to know how old you are, thought you would be in you late 20's. :)

Niels W.

# re: 34!@ Wednesday, July 07, 2004 7:57 AM

gefeliciteerd.

Matthijs

# re: 34!@ Wednesday, July 07, 2004 7:59 AM

Happy birthday Frans!

I am 31 today and was feeling pretty sad this morning ... much better now ;)

Ram

# re: 34!@ Wednesday, July 07, 2004 7:59 AM

Congrats - again, like last year: this time it is my 0x1E'th :)

Christian Weyer

# re: 34!@ Wednesday, July 07, 2004 8:01 AM

young'n....38 here. Happy belated b-day and much thanks for all of you help

Greg Robinson

# re: 34!@ Wednesday, July 07, 2004 8:22 AM

Congrats and happy birthday from an old guy that just had his-)

Sam Gentile

# re: 34!@ Wednesday, July 07, 2004 8:31 AM

You're just a puppy :-) Congrats!

Brad

# re: 34!@ Wednesday, July 07, 2004 8:52 AM

Happy Birthday dude! Have a good one!

Patrick Steele

# re: 34!@ Wednesday, July 07, 2004 9:01 AM

Thanks all!!! :))

Congratz back to Ram and Sam! :)

Frans Bouma

# re: 34!@ Wednesday, July 07, 2004 9:33 AM

congrats!! great speaker, great product, great person ;-)

Damir

# re: 34!@ Wednesday, July 07, 2004 9:38 AM

Congrats Frans! Heck, you are still younger than me.
:-)

Best Regards,
Jimmy
www.jnsk.se/weblog/
###

Jimmy Nilsson

# re: 34!@ Wednesday, July 07, 2004 9:48 AM

Hey, gefeliciteerd man!

Dennis v/d Stelt

# re: 34!@ Wednesday, July 07, 2004 10:12 AM

58!

garibaldi

# re: 34!@ Wednesday, July 07, 2004 10:22 AM

Congratulations Frans! I will be turning 36 on Saturday, so not so far away!

Robert Hurlbut

# re: 34!@ Wednesday, July 07, 2004 10:43 AM

Happy Birthday!!

Dan Fernandez

# re: 34!@ Wednesday, July 07, 2004 4:20 PM

Now you have my age.. And it feels old sometimes

http://weblogs.asp.net/webvize

# re: 34!@ Wednesday, July 07, 2004 4:48 PM

Gefeliciteerd Frans!

Jeroen van den Bos

# re: Stored procedures are bad, m'kay?@ Wednesday, July 07, 2004 5:50 PM

Ok,

I must disagree as well. Yes it is slightly more difficult to change a table when access is implememented thru stored procedures. But, it does minimize the risk of buffer overruns and mailicious code being executed on your database server. If performance is what your looking for then buy a bigger box. Security must be the highest priority then maintainability then performance.

Les M. (APS)

# re: Stored procedures are bad, m'kay?@ Wednesday, July 07, 2004 9:15 PM

Instead of dynamic SQL generated at run time. Run your dynamic SQL at design time. This will create all your simple INSERT,UPDATE, and DELETE operations for all your tables and save them as SPs.

This way your network traffic is reduced.

Dr Grieve

# re: VS.NET 2005: dialogs will not be resizable :(@ Thursday, July 08, 2004 6:15 AM

I can understand your frustration, but on the other hand: How often do you change your options? It is not one of the use cases that happens every day very often, right? So I can sort of understand that they would push that back for UI features that are used on a more daily basis. If you are thinking about dialogs that are used more regularily, my arguments obviously doesn't stand.

David

# re: VS.NET 2005: dialogs will not be resizable :(@ Thursday, July 08, 2004 6:23 AM

Yes, I understand that :) the problem is that setting it all up is already a pain, because of these tiny dialogs. The same is true for the dialogs for SqlExpress, which are used frequently.

Frans Bouma

# re: 34!@ Thursday, July 08, 2004 8:13 AM

Damm, your getting old! ;)

Wayne

# re: VS.NET 2005: dialogs will not be resizable :(@ Thursday, July 08, 2004 10:56 AM

I would have to agree with you. It makes you wonder if it even conforms to their own UI guidelines. This can't be that difficult to change.

Michael

# re: VS.NET 2005: dialogs will not be resizable :(@ Thursday, July 08, 2004 11:25 AM

Not allowing dialogs to resize is also a serious Accessibility no-no. This should have been fixed a long time ago.

kevin white

# re: 34!@ Thursday, July 08, 2004 11:53 AM

You nailed it. Time flies indeed. Although one day late, I still hope you had a nice birthday. Congratulations.

Alex Thissen

# re: 34!@ Thursday, July 08, 2004 2:53 PM

Gefeliciteerd Frans, nog wat leuke ps2-games gehad? :+

Joost

# re: 34!@ Thursday, July 08, 2004 4:18 PM

Congratulations :)

Igor Milovanovic

# re: VS.NET 2005: dialogs will not be resizable :(@ Thursday, July 08, 2004 5:31 PM

I agree. Dialogs should be resizeable.

Lynn Eriksen

# re: VS.NET 2005: dialogs will not be resizable :(@ Thursday, July 08, 2004 5:32 PM

How about the "Add New Item" dialog? How many times a day do you use that one? The open existing dialog (a customization of the built-in windows open file dialog) is resizable. They tried really, really hard to make the "new" dialog look the same, except for resizing in 2003.

I haven't had a chance to get the 2005 beta installed on a test box to see if at least that one changed. So, for all I know, it could've been fixed.

MartinJ

# re: 34!@ Thursday, July 08, 2004 7:26 PM

Congrats Frans!

It's good to know I'll always be 1 year and 108 days ahead of you ;)

Andres Aguiar

# re: Service pack 6 for Visual Studio 6.0 released@ Friday, July 09, 2004 12:15 AM

really a good favor for me .

aravind

# re: Service pack 6 for Visual Studio 6.0 released@ Friday, July 09, 2004 12:18 AM

really a good favor for me.

aravind

# re: Service pack 6 for Visual Studio 6.0 released@ Friday, July 09, 2004 12:21 AM

download.

mark

# RE: VS.NET 2005: dialogs will not be resizable :(@ Friday, July 09, 2004 3:44 AM

Oh, my. I've filled such requests years ago (vs.net 2003).
And got the same answer - I guess they have automatic answering machine for such requests :-)

miha at rthand com (Miha Markic [MVP C#])

# re: 34!@ Friday, July 09, 2004 4:13 AM

Druk... druk... druk, alsnog gefeliciteerd kerel! Hopende dat je 35'ste jaar zo geslaagd zal zijn als het afgelopen mr. MVP

Paul Gielens

# re: 34!@ Friday, July 09, 2004 4:19 AM

Thanks all! :)

Heh, all those people who are so glad they're ahead of me in years :P :) You'll be older sooner also! heh ;)

Frans Bouma

# re: 34!@ Friday, July 09, 2004 10:46 AM

congratz.
/late

whoami

# re: 34!@ Friday, July 09, 2004 1:22 PM

Best wishes for many more birthdays!

Scott Wallace

# re: A plea for full multiple inheritance support in .NET@ Friday, July 09, 2004 5:45 PM

"If every specific example could be countered with an example of why MI is not in fact necessary, wouldn't that tell you something?"

Every example of generics can be countered with "oh you can do that using casts instead." Indeed this tells you something: adding generics to the language saves a lot of needless work.

Every example of MI can be countered with "oh you can do that by inheriting from IThatOtherBaseClass and re-implementing all of its methods." This tells you something: adding MI would save needless work. Too foten, the answers to the MI question are those that reduce to "just cut-and-paste this into there." It works, but cut-and-paste is the opposite of code reuse. It is to be abhorred.

I think (hope) that mixins might address most or all of the cases where I've wanted MI. Time will tell.

NateW

# re: Tech-ed 2004 impressions.@ Saturday, July 10, 2004 7:18 AM

Can we go on and discuss the things said overthere ? Or is there a better place ? I would like to discuss some futher pratical situations and how to deal with it when you use OR mapping. During the session I raised some questions about reports and transactions, but I think I have some more questions :).

Colin

# re: Tech-ed 2004 impressions.@ Saturday, July 10, 2004 7:24 AM

Sure, go ahead :) I'll try to answer the questions in a future blogposting.

Frans Bouma

# re: VS.NET 2005: dialogs will not be resizable :(@ Saturday, July 10, 2004 6:12 PM

I agree it stinks that they're not resizable, but like David mentioned, how many times do you change settings? Especially now that you can import/export the settings. You should really only have to do it once and maybe a few more times as you get used to things.

MartinJ's concern makes a little more sense because the add new item dialog is used A LOT by people, BUT...

When it comes down to it, would you rather they focus on making the dialogs resizable, which would probably take longer than you think with planning the necessary changes, making them happen and testing, or fix more important bugs. They have to prioritize everything just like we do.

Also, you don't need to exagerate to get your point across. How much time does this waste for you in a day? 5 seconds? It would take a long time to add that up to really THAT much in significant time compared to say a bug or some other UI problem. Heck, even in the case of the add new item dialog, I'd imagine a higher percentage of people pick different items they have to scroll around to not very often and probably pick the same items over and over. You can also get a details view so the icons are smaller and less scrolling. Also, it's not like all 56,000 are working on visual studio. In fact, I believe there's only about 1,000 employees in the department anyway.

I agree it should be changed, but I'd rather see them rush to fix bugs at this point.

Erik Porter

# re: VS.NET 2005: dialogs will not be resizable :(@ Sunday, July 11, 2004 3:58 AM

Erik: it annoys me already since I first started with VS years ago. Then, it wasn't common to make dialogs resizable. However today it is, it's also very easy, a lot of the dialogs in VS.NET ARE resizable, (all C# dialogs f.e.). So you have a set of dialogs which are and a set of dialogs which aren't.

I'm not changing my settings every day, but to get the formatting settings right it takes a while and when you have to click in tiny windows it's hard to get it right.

What annoys me the most is that it is (also by me) reported a LONG TIME ago, so they had already years to fix this, however they didn't. Now they have still a year (!) left and its not 'fixable' apparently. This has nothing to do with the lack of time or resources, this has to do with the lack of priority set on issues like this. "Oh, just say we'll fix it in the next release"...

I DO find this a bug, a big bug, so following your reasoning, yes I want them to fix bugs, like these. The add-new dialog is the same thing, why isn't that thing resizable? Because it is hard to develop? No it is not. Yes it takes some ATL code and win32 messaging under the hood but they already solved that in numerous places: a lot of windows in vs.net are resizable (docked windows f.e.) and not written in .NET.

EVERY useless action should be eliminated. MS has to understand that after years of waiting for this fix, it is time to get it fixed. Opening tiny little windows on a big desktop without having them made resizable is asking the developer to do some useless actions which will take ages to complete because the bigger picture is hard to get.

I then wonder: whoever wrote this: did he/she ever used his/her own code? I think not. The second you use dialogs like the ones mentioned you know these are not well written.

Frans Bouma

# re: VS.NET 2005 Express: find / replace accept only single line strings@ Sunday, July 11, 2004 10:15 AM

agreed ... a way to implement this would to accept escape codes like \n \t, rather than a multiline box. this is how ultraedit does it. solve this problem, and I won't need ultraedit any longer!

Jake

# RE: VS.NET 2005 Express: find / replace accept only single line strings@ Monday, July 12, 2004 11:18 AM

*sigh* I miss homesite :(

Michael COok

# re: VS.NET 2005: dialogs will not be resizable :(@ Monday, July 12, 2004 11:48 AM

I agree, too. Dialogs should ALWAYS be resizeable and the defaultsize should be at least near 640x480 pixels (so it will even display correctly on a small screen).

IMHO it is also necessary to save all the values for the resized and repositioned windows. It´s really annoying to resize the same window over and over again.

I am using a 1920x1200 screen resolution, maybe you can image how "useless" this is...

MS should really solve this problem. Please!

Flynn

# re: Stored procedures are bad, m'kay?@ Tuesday, July 13, 2004 12:37 AM

I jumped into this article when I was in a dilemma to use Stored procedures or dyanamic sql's. Well after reading the arguments of both the sides I am back to square one. If these forums are a failure in providing a novice with a right direction, then these forums are just a spot where ppl with knowledge just discuss for the sake of argument and nothing else.

Ranjith

# VS.NET 2005 will not have a multi-line search/replace feature :(@ Tuesday, July 13, 2004 1:33 AM

TrackBack

# re: Stored procedures are bad, m'kay?@ Tuesday, July 13, 2004 2:58 AM

Ranjith: no, that's not true. I gave a lot of arguments, if you think I'm right, you can't say "the others are also right" and vice versa, which means there is a side you can pick based on what you think is right so saying that there is nothing to learn from this thread is nonsense :)

Frans Bouma

# re: VS.NET 2005 will not have a multi-line search/replace feature :(@ Tuesday, July 13, 2004 7:57 AM

Frans,

Quit whining. Seriously. Just because they like a feature doesn't automatically mean that it's going to make a certain release, that doesn't mean that they are incompentent or worse dishonest as you imply.

That's a really really cheap shot, bordering on irresponsible considering you have absolutely *no* evidence of this. You are speculating on the reasons and motiviations here because you have your feelings hurt. You wanted to say, "Hey! that nifty multiline search/replace was *my* idea!!" Great. Good for you.

The bottom line is that they will incorporate some features, and others won't make it, and it's not because they are eevvvviiilll, it's because there is a finite amount of time to produce this product (yes even for Microsoft).

If you're so passionate, create a plug-in yourself. It's easy, remember?

Reality Check

# re: VS.NET 2005 will not have a multi-line search/replace feature :(@ Tuesday, July 13, 2004 8:16 AM

Hi anonymous on airband.net. Next time mention your real name.

All I want to know is WHY is it not in this release. Because they were so enthousiastic about it THEN, I expected it to be in the final, however it wasn't. Why?

I don't give a damn about who brought up the feature idea, why should I care? All I want is this small feature and I'm definitely not alone. I'm also not late, I was very early. It's also not a feature they didn't like, they liked it a lot (as others in the alpha btw).

I then want to know: WHY isn't it added? If it had ANY priority it would have been added. It's not. So I want to know: Is it cancelled because some person/group thought it wasn't necessary to add. I then have a handle to discuss why it IS important. "There wasn't enough time" is not true. There was plenty of time, a whole year to be exact till TODAY, and we even have a whole year to go.

It's not about my feelings, it's about an editor I have to use which won't have a simple feature which greatly helps development and there is no reason given WHY it doesn't.

yeah I can create a plugin, I can create a plugin for all things I want to do in an editor. Writing stuff yourself is not productive if you can buy it off the shelve.

I also know I can cram in a regexp in that tiny textbox and hope it will do what I want, but regexp can contain bugs and how to find these, in a simple search/replace box, mr. anonymous? Oh, right, I could write my own plugin, of course!

And being in an alpha program is fun! you can spend all those time suggesting things, having the feeling you can actually accomplish something. Well, you can't.

I'm not alone in this, mr. Anonymous.

Frans Bouma

# re: VS.NET 2005 will not have a multi-line search/replace feature :(@ Tuesday, July 13, 2004 8:25 AM


To get this far into a product lifespan and still not have this feature is a little bizarre given the other less useful options that it already contains.

Anon

# Creating an Atmosphere of Accountability@ Tuesday, July 13, 2004 8:30 AM

TrackBack

# re: VS.NET 2005 will not have a multi-line search/replace feature :(@ Tuesday, July 13, 2004 8:43 AM

Sometimes features get cut, or aren't even considered for a certain release. Yes, it's sour that, being release 8, there's still no multiline search/replace. But Microsoft is a professional company and the people working on VS are passionate about their jobs and passionate about delivering a great developer experience; this is not some hobbyist group creating a shoddy peace of shit resembling an IDE.
Even implying something awkward went on in this feature not being implemented is silly. How many feature requests do you think the team gets for any releases? It'll be in the hundreds or maybe even thousands sooner than in the tens. No way all these features can be implemented. Not in 1 year, not in 2, not in 5. Features have to be cut. Choices have to be made. What do we implement, what do we leave for the next version?
So, it's too bad we're not getting this feature. But it's not the end of the world. I can't believe you were in the alpha program just for this feature. And I can't believe you won't participate in alpha programs anymore because of this experience. And I don't think you yourself can believe you will.

Final note: if there's so many people that really NEED this feature, writing your own plug-in is indeed easy. Get together and write it. Post the code in a GotDotNet workspace and Microsoft can immediately mine it for the next VS.

Wolfgang Al

# re: VS.NET 2005 will not have a multi-line search/replace feature :(@ Tuesday, July 13, 2004 8:58 AM

Wolfgang: normally I wouldn't expect a feature to be implemented at all. That's just realistic. However when you're on the alpha program, a thread is started with new screenshots of the search window, requests for feedback on that particular window, feedback is given (make it multi-line), which is acknowledged by more people, MS responds: "Oh we didn't think of that, indeed great suggestion", then what would YOU think, early 2003?

That it's highly unlikely the feature gets implemented? No. Especially when it's not a silly feature you probably will never use.

That's why I wrote about honesty towards teh community and to people who were close to the team in the alpha group: if you first are enthousiastic about something and you seem to add it, you can't come with an excuse later on with 'there wasn't enough time'. It's not E&C we're talking about, it's replacing 1 string of characters with another string of characters.

In fact, the code is already there, as a regexp guru can already search/replace over multiple lines so editor support for these kind of changes is already in place and tested. So why it is not added is, sorry, beyond me.

Then receiving these kind of responses from MS is really not motivating me to participate in another alpha group. (note: teh resizable windows suggestion was given to them a long time ago too)

Frans Bouma

# Creating an Atmosphere of Accountability@ Tuesday, July 13, 2004 9:33 AM

TrackBack

# re: VS.NET 2005 will not have a multi-line search/replace feature :(@ Tuesday, July 13, 2004 9:40 AM

Frans you are being a baby.

Firstly, I don't know why you say 'Hi anonymous on airband.net. Next time mention your real name.' This is childish. The poster's name is irrelevant, and your childish 'aren't I clever, I reversed his IP' comments are not really very friendly.

Secondly Homesite is probably written by a single guy, and if someone says 'can you do X', then he will do it on the spot.

Things don't work like this in Microsoft. Things need testing on 100 different systems. In addition, you are acting like there is nothing else for these guys to do. This is not correct. They will have a list of features for the next version of the software. They will have prioritised these, and then tried to remove as many as possible that are not essential in order to SHIP THE SOFTWARE. This is just common sense.

This feature might be important to you, but don't act like Microsoft has nothing else to do, and had 2 years to build this. Yes they did have 2 years, but they probably decided 2 years ago that they weren't going to do it. Which other feature would you like cut instead? Do you think the PMs haven't thought about this?

And what scenarios are you using multiline find and replace?

matthew

# re: VS.NET 2005 will not have a multi-line search/replace feature :(@ Tuesday, July 13, 2004 10:01 AM

"Firstly, I don't know why you say 'Hi anonymous on airband.net. Next time mention your real name.' This is childish. The poster's name is irrelevant, and your childish 'aren't I clever, I reversed his IP' comments are not really very friendly."
Ranting as an anonymous person on my blog is IMHO rather childish, why not state your name?

Matthew: as I explained above already: it was to me very clear that the new search dialog they proposed would get multiline search facilities, there wasn't a single word from their side it shouldn't have one.

After a year it seems it doesn't have that multi-line feature and I wonder W H Y. Is that so freaking hard to understand? Apparently. Asking 'WHY' is apparently childish. I'm not asking why because what I wanted is not implemented, I want to know why a feature that everyone agreed on was a great thing to add, at a time where there was plenty of time and room left to add it, is simply dropped and as a reason there is given: "not enough time", while they LOVE the feature.

The search dialog was completely redone, why didn't they include a multi-line feature? Is that so hard to answer, or is it so childish to ask for that reason? ONLY If they have said earlier on already "no, we won't do this".

I've needed it on various occasions, like something is spanning 2 lines, or you want to replace sometext; plus the next line with sometext; plus another line.

Perhaps I'm being misunderstood as a crying fool, but all I want to know is: why is it dropped when they loved the feature a year ago, they still LOVE it today, it's high on lists for the next version...

Did they forget to implement it and it's now too late? (can happen, seriously: I can live with that). Did they think it wasn't that useful? (then why LOVE it still and having it high on lists for a next version?). It was impossible to implement? (while you can with a clever regexp do it already)?

It's the whole picture: being in the alpha program, having the illusion you can actually suggest something or debate some feature, getting the feeling that some feature is actually being added, then seeing it's not and reading the reply that the feature was/is still great and it's on lists, but there wasn't enough time.

I'm doing software development for a loooooong time now and I know what it means: "There wasn't enough time": the feature didn't have a priority high enough to get it added.

Again, I can live with that, seriously. But if that's the case, don't come with excuses that you LOVE the feature and it is high on lists for hte next version. To me that's a bit weird.

Frans Bouma

# re: VS.NET 2005 will not have a multi-line search/replace feature :(@ Tuesday, July 13, 2004 12:43 PM

Microsoft uses Betas and Alphas to get your feedback on their ideas. Not that your feedback really matters very much unless it is in line with their plans and ideas. Every single beta tester could say "that sucks" about a feature and be told "the decision was made before we told you about it". That happens often, as I am sure you know.
MS Beta testers are there to report bugs for the version being worked on and to offer suggestions for the version after the version being worked on (or the version after that, depending on whether the feature/bug is going to require a lot of work or not). Beta testers are "testers", not partners or contributors or anything other than bug hunters. Spot and report bugs that the developers missed, that's the tester's role.
Even at Alpha stage, all the features that will exist are probably already in place and featureset changes are limited to "removed this feature" only, for the most part. Features are removed in order to get the product out the door by RC1 stage (which MS calls "gold"), they don't want suggestions of more features, they have too many on their plate as it is by that time.
I don't really understand why you're acting surprised about this, Frans. Isn't this the way things have always worked with them?

Shannon J Hager

# re: VS.NET 2005 will not have a multi-line search/replace feature :(@ Tuesday, July 13, 2004 12:54 PM

"I don't really understand why you're acting surprised about this, Frans. Isn't this the way things have always worked with them? "
Well, if I had suggested the feature last week, and even during a beta-stage, I wouldn't have been surprised really, perhaps annoyed about the fact that they could have thought about it themselves.

This was very early, during the design of the feature itself, so perhaps my naivety got in my way, blinding my view on reality ;)

Frans Bouma

# re: Request From The Windows Guys@ Tuesday, July 13, 2004 1:46 PM

TrackBack

# re: VS.NET 2005 will not have a multi-line search/replace feature :(@ Tuesday, July 13, 2004 3:01 PM

Hi Frans,

I just wanted to say, please keep on whining. It's critical that someone makes noise about real features that affect real developers. This is one of those things that people probably don't realize they can't live without. I used homesite for several years before giving it up to move to asp.net and the multiline search/replace is easily the feature that I miss most. There's so many cases it woulc have saved me tons of time.

Please keep bringing these issues to light because no one will listen to most of the rest of us that feel the same way :)

Michael Cook

# re: 34!@ Tuesday, July 13, 2004 7:46 PM

Gefeliciteerd ;)

Rutger

# re: VS.NET 2005 will not have a multi-line search/replace feature :(@ Tuesday, July 13, 2004 8:26 PM

I believe Microsoft Access went at least six versions without a way to print the Relationships Window, despite numerous requests, discussions between alpha testers and Microsoft developers, professions of interest, and so on. Input from external testers is one small factor in the bigger picture; I think Microsoft's own vision of where a product is going next is weighted much more highly.

Mike Gunderloy

# re: VS.NET 2005 will not have a multi-line search/replace feature :(@ Tuesday, July 13, 2004 9:01 PM

Another "no brainer" feature (this time in the Windows shell) that's long overdue is being discussed at: http://weblogs.asp.net/OKloeten/archive/2004/07/13/181939.aspx

Frans isn't the only one who's "been ignored"! I'm hoping the new product feedback center helps, but have my concerns about how the "wish-lists" are maintained...

Steve Hall

# re: VS.NET 2005 Express: find / replace accept only single line strings@ Tuesday, July 13, 2004 9:37 PM

Hi Frans,

I have been working with .net pretty much since it was in beta, and one thing that has always frustrated me is the IDE. It was very hard to come from using IDE's like IntelliJ, jBuilder & Eclipse to VS.NET.

VS.NET has NEVER had the sort of features that a hard core coder wants, like refactoring, code generation, very advanced auto-complete, full syntax coloring, auto code formatting etc.

I never use any of the vsiual tools because I find that complex applications must be hand designed & written (apart from actually drawing the forms).

There are a lot of good tools in VS.NET, but they have always lacked basic coding features that Java IDE's have had for years.

Lachlan

Lachlan James

# re: VS.NET 2005 will not have a multi-line search/replace feature :(@ Wednesday, July 14, 2004 12:08 AM

well, Frans, maybe "naive" is too strong... "overly optimistic", maybe. If we were talking about a great year-old suggestion for LLBLGen, I would be as surprised as you, unfortunately, change and movement at MS is glacial compared to smaller, more agile [ack, I don't want to use that word, but it fits] companies like yours.

Shannon J Hager

# re: VS.NET 2005 will not have a multi-line search/replace feature :(@ Wednesday, July 14, 2004 2:52 AM

"Input from external testers is one small factor in the bigger picture; I think Microsoft's own vision of where a product is going next is weighted much more highly."
I can see a point in this, however I can't match it with the weight they seem (!) to give to the MSDN feedback center now, as if they are very eager to hear our feedback and are very willing to add these things provided by feedback... However, it more and more looks like it's just hot air and business as usual.

Shannon: heh :) You're right. I like "overly optimistic" :)

Steve: thanks for the link, seems like a similar situation... I really don't understand why these kind of things are left out while stupid features a lot of people never use are added, like clippy is now re-added to VS.NET 2005.. I mean... yes, we all want THAT one to be part of vs.net 2005 and not things like resizable windows and multi-line search / replace!

Frans Bouma

# re: VS.NET 2005 will not have a multi-line search/replace feature :(@ Wednesday, July 14, 2004 3:26 AM

Surely you are joking about Clippy? I mean I saw the screenshot, but I am pretty sure it was mocked up in jest.

Michael Teper

# re: VS.NET 2005 will not have a multi-line search/replace feature :(@ Wednesday, July 14, 2004 3:35 AM

I *hope* it's a joke, myself I can't believe it on one side, however on the other hand, I wouldn't be surprised if they add a similar 'wizard'like feature to the express stuff.

Frans Bouma

# re: VS.NET 2005 will not have a multi-line search/replace feature :(@ Wednesday, July 14, 2004 3:38 AM

Ok, I saw the screenshot now. It looks really bogus (especially the statemachine prank :D) *pfew*

Frans Bouma

# re: VS.NET 2005 will not have a multi-line search/replace feature :(@ Wednesday, July 14, 2004 6:27 AM

I would just like the find / search facility to search inside region tags(Multiline would have been nice aswell).

I have had this problem so many times before that you search for seomething in a project and it does not find the word becuase it is inside a region.

If this is possible then please point me in the right direction.

I guess i can't complain to much about "VS.NET 2005 will not have a multi-line search/replace feature" seeing that i have not been participating on the MSDN groups, but i would like to say - To wait for the next version of VS to get this little feature is madness!!

But i guess it is part of the way M$ works..they never fixes something the first time - you always have to wait for a patch that may or maynot appear or buy a upgrade or even buy a new version in which the problem is supposedly solved, and after getting the new version you find that all they have done is changed the GUI to make better looking or they have broken something else.

This makes me think of the sinario where we are donkeys and M$ is riding us while holding a big juicy carrot infront of us, with the promise that we might get the carrot someday.

Wayne Barker

# re: VS.NET 2005 will not have a multi-line search/replace feature :(@ Wednesday, July 14, 2004 8:42 AM

It surely isn't that hard to understand where Microsoft are comming from. They have hundreds of potential enhancements for VS and have a priority for each one. Your suggestion will, no doubt, have been added to it but by the time it gets to alpha the two top priority features are stability and shipping. The priority cut-off point was before your feature.

Stuart Radcliffe

# re: Entity: why do some people who write IT books re-invent definitions?@ Wednesday, July 14, 2004 10:19 AM

I have never seen the term "entity" used in object-oriented programming and design; I don't think it is a very popular term. The normal concept of entity isn't usefuul in OO programming/design as it is replaced with the very similar notion of Class. The big difference is that while representations of an entity *may* have identity (the definition isn't very clear on this), the representations of classes (objects) *must* have identity. The closest thing to an entity in the OO world is either a class, and it can be argued that they are the same thing depending on how you read Chen, or what UML calls has a data class.

If you regard Chen's entity in its original content, namely as an innovation over the normal relational model which is quite agnostic on how to express relationships, I do believe it makes sense to say that an entity is something of which the representations have and preserve identity, although Chen didn't use this in his definition.

Reinier Post

# re: Serious ASP.NET Editor flaw lives on in VS.NET 2003@ Wednesday, July 14, 2004 4:31 PM

I found this thread Googling for "pasting changes id value .net" and thought I'd pass along a link I came across. Its an Add-in someone created to prevent the HTML editor from adding the ID attribute to various controls when pasting markup into the editor pane.

While I don't seem to have that problem in my current version of Studio, I do still fight daily with the editor changing the ID values upon pasting. It looks like the solution in this link might be fertile ground for solving that problem, too.

They call it the "what is in the clipboard is what get(sic) pasted" Add-in.

http://www.codeproject.com/macro/wiicwgp.asp

Hope this helps some folks.

Kirk

# re: Doom III is GOLD!@ Wednesday, July 14, 2004 5:38 PM

Ahh hell yeah. Hope my kick-ass system from last year plays it well enough.

Michael Cook

# re: VS.NET 2005 will not have a multi-line search/replace feature :(@ Wednesday, July 14, 2004 5:53 PM

Wayne, I don't know about vs.net 2005, but for 2003, check "Seach hidden text" in the find box, that should work for you.

In general, why does Microsoft actually except feedback? Have they ever implemented anything based on feedback? It seems like developers (and users) whine for years and years, and maybe Microsoft will accidentally implement something they asked for. So why have the pretense? It just leads to expectation and then disapointment.

Michael Cook

# re: Doom III is GOLD!@ Wednesday, July 14, 2004 10:02 PM

Sweet!!!

Sean Chase

# re: Doom III is GOLD!@ Thursday, July 15, 2004 2:33 AM

Guess my 9500 is ready for replacement, I'm more of a HL2 man myself. Can't wait to dig in the (official) code and start modding. Btw we added support for shaders in our own mod (http://www.hostileintent.org)

o wait this is about doom err. ;)

Paul Gielens

# re: Doom III is GOLD!@ Thursday, July 15, 2004 3:20 AM

Hope my pc will hold that miracle! I can't wait to try it out!

Questa

# re: Really complex databinding: ITypedList with weakly typed collections@ Thursday, July 15, 2004 7:04 AM

Excellent!

I'm trying for something a tad more ambitious. I've included an ArrayList of properties (derived from PropertyDescriptor) which are defined at run-time and replace standard property declarations.

I'm not sure how to identify which Customer object in the collection is being queried at any given call to GetItemProperties. I believe this is necessary to relay the appropriate Customer property values to the bound control...

Anyone have a suggestion?

James Wilson

# re: Really complex databinding: ITypedList with weakly typed collections@ Thursday, July 15, 2004 7:55 AM

Well, I managed to find the solution myself - for anyone interested, the relay occurs in the PropertyDescriptor instead for GetValue/SetValue. They both include a component parameter which is exactly what I was missing...

James Wilson

# re: Stored procedures are bad, m'kay?@ Thursday, July 15, 2004 1:59 PM

I hit this link because i had an argument with my pair programmer just because he wanted to show me down. I think this thread lists all the good and bad things of using and not using SPs. You can figure out what is best for you. Use your brain, dnt just follow. I have used both ways in different projects. I think where i did not want my application to expose logics to DBA's or my client i used statements in my application and when i knew product was for my employee and he had rights to have control over the codes, i used SPs.
I think Databases should have classes or layer of business objects allowed to be attached to them. this is the only way i will feel safe while coding.

Usman Akram

# re: Stored procedures are bad, m'kay?@ Friday, July 16, 2004 7:25 AM

choice between SQL statements and Stored Procs can be done based on following parameters:
1. Development team coupling: If the developers are going to work closely together, statements could do. If they are not, Stored Procs (SPs) would work better.
2. Database Size and complexity: For databases having on an average 200 tables, each table with at least 10 columns should go for nothing less than properly documented and well versioned and maintained SPs.
These are just views. Individual experience and view could be different.
3. Database changes: If the database tables are going to change every week, SPs would be a liability for documentation, maintenance whereas statements would help here in the sense that the debugging could be done in place.

Prasad Narwadkar

# VS.NET 2005 will not have a multi-line search/replace feature :(@ Saturday, July 17, 2004 6:32 PM

TrackBack

# My Thoughts on the MSDN Feedback Center@ Wednesday, July 28, 2004 3:11 PM

TrackBack

# My Thoughts on the MSDN Feedback Center@ Wednesday, July 28, 2004 3:12 PM

TrackBack

# Do it the OO way!@ Monday, August 02, 2004 5:11 AM

TrackBack

# Confessions of a DataSet Flip-Flopper / Custom Entity Waffler@ Monday, August 02, 2004 8:14 AM

Confessions of a DataSet Flip-Flopper / Custom Entity Waffler

TrackBack

# Do it the OO way!@ Wednesday, August 04, 2004 4:14 AM

TrackBack

# re: [OT] What Dutch do when it is 30+ degrees Celcius...@ Sunday, August 08, 2004 11:10 AM

Moet je voor de grap even naar Arnhem komen. In het oosten is het zo mogelijk nog warmer. En ik moest al een kater uitzweten na gisteravond :^)

Wilbert

# re: Comments enabled again.@ Sunday, August 08, 2004 11:31 AM

Sweet. this blog is much better with the fights, arguments, examples, and replies and the comments. Your site has 10x more comments than posts!

Shannon J Hager

# re: Comments enabled again.@ Sunday, August 08, 2004 11:36 AM

heh, yeah but if you have to delete long lists of postings with solely links to all kind of obscure chinese porn sites or other crap, on a daily basis, it gets annoying ;)

How it's implemented now is fine, I can simply select to publish a reply or ignore it completely :)

Frans Bouma

# re: [OT] What Dutch do when it is 30+ degrees Celcius...@ Sunday, August 08, 2004 11:55 AM

Holy cow, je zal daar wonen en een keer effe weg moeten, now way dat je dan nog terug naar huis kan rijden.
Flexwerk is wel een must in de zomer volgens mij :)

Matthijs Hoekstra

# re: [OT] What Dutch do when it is 30+ degrees Celcius...@ Sunday, August 08, 2004 6:00 PM

Hey, I was in Valkenisse yesterday. Fortunatelly it wasn't as crowded as Scheveningen ;)

Thomas Freudenberg

# re: [OT] What Dutch do when it is 30+ degrees Celcius...@ Sunday, August 08, 2004 7:40 PM

reminds me of Zandvoort ...

stefan demetz

# re: Assembly '04 ends@ Monday, August 09, 2004 2:55 AM

no doubt - 2nd place demo was far better!

kenneth

# re: [OT] What Dutch do when it is 30+ degrees Celcius...@ Monday, August 09, 2004 3:09 AM

I'll be on my way to Amsterdam later this afternoon, with no airco on board ;) I envy those people.

Paul Gielens

# re: And... gone was the nice moderation system *sob*@ Wednesday, August 11, 2004 5:24 AM

I better comment on this while I still can :)

Jeroen van den Bos

# re: And... gone was the nice moderation system *sob*@ Wednesday, August 11, 2004 5:25 AM

Heh :) indeed :)

Frans Bouma

# re: About the add-in contest results@ Saturday, August 14, 2004 9:32 AM

Basic software 101. Thanks for writing the lesson so well in hopes it may inspire others to follow good practices.

Sam Gentile

# re: About the add-in contest results@ Saturday, August 14, 2004 12:28 PM

Certainly it sounds like the quality of the add-ins submitted could/should have been of a better quality.

To be fair, however, as with most contest and competitions, there is usually criteria given as to how the judges will be scoring the entries and some basic rules as to the minimum criteria for even accepting an entry. I checked out the contest URL you mentioned in your post, and it really doesn't give an author of an add-in any clue as to how the judges would be evaluating add-ins or the minimum acceptance level of an entry.

I recommed that future contests be more formal in contest rules and judging criteria. This will not only assure you get the quality of submission you are looking for, but 1) help the judges be more consistent in their recommendations and 2) help the contestants understand the rules of engagement :)

It sounds like this contest had a few bumps, but given all that was learned, I bet the next one will be better. Plus, given the competition wasn't too fierce, I bet future contests will have a lot more entries :)

I think these contests are a great idea. Thanks to Roy, the judges, contestants, and sponsors for paving the road to more contests. I'll show more community spirit and enter the next one, making myself vulnerable to the judges and community at large :)

David Hayden

# re: About the add-in contest results@ Monday, August 16, 2004 3:45 PM

This is excellent advice for everyone involved, Frans. A great article and resource for anyone looking to develop an add-in for VS. (I'll be taking this to heart, for certain).

Justice

# LLBLGen Pro : New Release, New Trial Terms@ Monday, August 16, 2004 8:04 PM

TrackBack

# re: About the add-in contest results@ Monday, August 23, 2004 6:37 PM

Who won the contest??

Bobbie Sellers

# re: Assembly '04 ends@ Tuesday, August 24, 2004 11:13 AM

I've seen the videos at my work and I really, really like #1. But #2 is definitly a great ligthshow! The video isn't that good, so I hope I can see the demo at home soon!

Farbraush at #14! That's quite low, though the demo is quite nice. Although yet another Farbraush production, as always. Have to check #13 to see what the quality is, if this one is at #14! :)

Dennis v/d Stelt

# re: About the add-in contest results@ Tuesday, August 24, 2004 1:20 PM

So what will happen to all the submissions?
How about posting them somewhere after taking the author's permission. This way their work didn't go for nothing and the programming community will learn how to write an add-on.
Personally I don't know how to code one and looking at someone else's code will give me insight.

Abdu

# Longhorn news@ Saturday, August 28, 2004 1:35 AM

Longhorn news

TrackBack

# re: Stunned: WinFS removed from Longhorn@ Saturday, August 28, 2004 9:51 AM


Mr. Allchin does not care about you, Frans!

bilbo

# re: Stunned: WinFS removed from Longhorn@ Saturday, August 28, 2004 9:55 AM

He doesn't? darn.!! ;)

Frans Bouma

# re: Stunned: WinFS removed from Longhorn@ Saturday, August 28, 2004 11:40 AM

I think he lives near me, a few blocks over. Want me to go knock on his door and ask if he cares about you? ;) I could go put a put "Shorthorn" poster in his front yard.

Scott

# re: Stunned: WinFS removed from Longhorn@ Saturday, August 28, 2004 11:44 AM

Sure, go ahead ;), I'm sure he'll be very delighted to get reminded of a certain individual called 'Bouma' EVEN during weekends! ;)

Frans Bouma

# re: Assembly '04 ends@ Saturday, August 28, 2004 11:46 AM

A nice site to find all the demos ever done is www.pouet.net

Davide Mauri

# Re: Stunned: WinFS removed from Longhorn@ Sunday, August 29, 2004 11:18 AM

Scott, if you put that poster up in his front yard I promise to donate 100$ to your resulting legal expenses fund! :-)

/Mats

mats.helander@matssoft.com

# GhostDoc: The Way of the Samurai@ Monday, August 30, 2004 1:16 AM

TrackBack

# re: Stunned: WinFS removed from Longhorn@ Monday, August 30, 2004 8:23 AM

Apparently, we will see some kind of beta-WinFS to coincide with the launch of Longhorn Final. But I agree, this is, to put it mildy, NOT GOOD. This is not about new client experiences, this is about the hard needed next step in business solutions development. Yet another delay in MBF. Thanks SP2, thanks Trustworthy Computing, thanks security push, thanks biggest engineering project ever to be undertaken by Microsoft. I don't want to know how many ISV's have to adjust there long-term development plans yet AGAIN. Thank God we at least will be able to leverage Indigo and Avalon on older systems; that's the way it should have been from the start.
"Don't call it ShortHorn"? Fine. How about Windows XP 1.5 than?

(Let's make one thing pretty clear here though: the advancements in .NET are still rocking. Especially WinFX<->.NET should be great...)

Wolfgang

# re: Ghostdoc 1.1.1@ Monday, August 30, 2004 2:36 PM

I'm not sure if I want my parameters threatened. I already swear at my code enough that way it is. It probably doesn't need to be harassed by another program. :)

css

# Stored Procs vs. Dynamic SQL@ Sunday, September 05, 2004 2:30 AM

TrackBack

# Dynamic SQL vs Stored Procedures@ Monday, September 06, 2004 4:10 AM

TrackBack

# re: Killing a Yukon myth@ Sunday, September 12, 2004 9:34 AM

I think the confusion comes from not understanding that the CLR running in Yukon/SQL Server 2005 is really, more or less, a replacement for extended stored procedures. Previously, we had the difficult task of getting the memory, threading, security, and many other issues coded correctly using C++ for extended stored procedures, and it was very, very easy to get it wrong. Assemblies hosted and used in Yukon will move extended stored procedures to the next level.

Robert Hurlbut

# re: Killing a Yukon myth@ Sunday, September 12, 2004 10:23 AM

Good remark, Robert, I also think it's more or less a replacement for extended stored procedures.

(left alone the custom aggregates, types and functions, which can be interesting).

Frans Bouma

# Assorted Thoughts on Whidbey, Yukon, Longhorn, and Mono@ Sunday, September 12, 2004 11:27 AM

TrackBack

# re: Killing a Yukon myth@ Sunday, September 12, 2004 4:21 PM

Excellent description of the "problem".

Paul Wilson

# re: About the add-in contest results@ Sunday, September 12, 2004 11:18 PM

David, the fact that a softeware development contest rule that says "your software should be installable and have documentation" is needed is a sad statement of the state of development skill in our industry.

bonder

# LLBLGen Pro Update Released@ Saturday, September 25, 2004 8:56 AM

This is a HUGE list of added/updated features. The Access database support alone greatly increases the number of places LLBLGen will be used. Thanks and congratulations, Frans.

TrackBack

# re: Major upgrade of LLBLGen Pro released!@ Saturday, September 25, 2004 12:38 PM

Now I just have to convince my employers to buy it (or buy it myself, use it to do a bunch of my work and head off down the pub with the time I save :-))

Scott Galloway

# LLBLGen Pro - .NET O/R Mapper Extraordinaire - New Release@ Saturday, September 25, 2004 2:44 PM

TrackBack

# re: Major upgrade of LLBLGen Pro released!@ Saturday, September 25, 2004 5:08 PM

Hi Frans,

All I can say is wow. I know how hard you've been working on LLBLGen and it gets better and better.

Thanks for making such a great product at such an affordable price.

For those of you who haven't used LLBLGen I recommend you download the trial and give it a trial. You will not regret it!

John

John Mandia

# re: Major upgrade of LLBLGen Pro released!@ Saturday, September 25, 2004 7:09 PM

Just wanted to add my congratulations as well.

I bought LLBLGen Pro on a whim when it first came out based solely on your professional character and it has turned out to be an invaluable tool.

You have the recipe for success and other vendors should take note:

:: Feature-Rich and Stable Product.
:: Frequent Quality Updates.
:: Timely Support.
:: Affordable Price.

Thanks for all your effort on the product and in the developer community!

David Hayden

# re: Major upgrade of LLBLGen Pro released!@ Saturday, September 25, 2004 8:14 PM

Congrats on another great version.

Paul Wilson

# re: Major upgrade of LLBLGen Pro released!@ Sunday, September 26, 2004 7:10 AM

Thanks guys! :)

Yeah, I have the feeling it more and more becomes what I had in mind when I started the project late 2002 :). We're not there yet, the designer has to get a lot of designer goodies to make life easier as well etc.. but this upgrade adds so much value to the tool :) With every feature I wondered "why haven't I added this in the first place? " ;)

Next up are a couple of more databases to support. But first a couple of days with not that much coding :).

Frans Bouma

# re: Major upgrade of LLBLGen Pro released!@ Sunday, September 26, 2004 9:46 AM

Looks very cool! You just might have the coolest O/R mapper for the .net platform here ;-) I especially like the added support for eager/lazy loading. Just about the only thing that I'm missing is better support for inheritance. I know that you can code you way through it but it would be nice with support build-in for it I think. Is that something you envision for a future release?

Christoffer Skjoldborg

# re: Major upgrade of LLBLGen Pro released!@ Sunday, September 26, 2004 11:04 AM

"I especially like the added support for eager/lazy loading"
Lazy loading was already present, in SelfServicing, but Adapter didn't have it (because it uses a separate adapter object to do the persistence, so in a remoted scenario you'd be out of luck). Prefetch paths solve this, just specify the tree to fetch, including filters, sorting and limitation on size, and pull the entities out of the db in one query per type :)

"Just about the only thing that I'm missing is better support for inheritance. I know that you can code you way through it but it would be nice with support build-in for it I think. Is that something you envision for a future release?"
Inheritance is somewhat lacking indeed at the moment. It is planned though, but we wanted to create the more important features first. Inheritance is often mentioned as an essential requirement for O/R mapping, however it's often not that of a problem if inheritance isn't there, as data in a relational database is more flexible to use when it is not fit in an inheritance model. (person <- customer, person <- employee, employee buys something.. oops :))

But it is added in the near future.

Frans Bouma

# re: Major upgrade of LLBLGen Pro released!@ Sunday, September 26, 2004 11:24 AM

That's cool!

Christoffer Skjoldborg

# re: Major upgrade of LLBLGen Pro released!@ Monday, September 27, 2004 4:33 AM

Frans, congrats!! One thing I've always wondered is, are there any other O/R mappers out there that you hold in high regard, for example in the Java world (since there seem to be hundreds there).

Senkwe

# re: Major upgrade of LLBLGen Pro released!@ Monday, September 27, 2004 5:27 AM

The java world is not comparable with the .NET world. This is because in the java world you use an application server and you 'plug-in' the O/R mapper of choice but it's mostly transparent. (you can also use an O/R mapper separately of course). A lot of people like and use hibernate, which looks impressive from the featurelist but I haven't used it myself. Internally hibernate does some things we can't do in .NET (overwrite bytecode for property getter/setters) and for value change tracking for example it isn't that efficient.

One of the top O/R mappers is of course Toplink, by Oracle. The gui isn't that great, but its featureset is very good.

Frans Bouma

# re: SQL Injection Quiz@ Monday, October 04, 2004 5:09 AM

TrackBack

# Un ottimo articolo sul perch@ Saturday, October 09, 2004 7:15 AM

TrackBack

# Un ottimo articolo sul perch@ Saturday, October 09, 2004 7:20 AM

TrackBack

# O/R mapper, s@ Saturday, October 09, 2004 7:56 AM

TrackBack

# re: Solving the Data Access problem: to O/R map or not To O/R map@ Saturday, October 09, 2004 1:06 PM

Very interesting post. Must agree with you in most of your arguments. I like solution 3 better then the other solutions. DDD is more my way of thinking so if fall in my nature.

I don't like that Dabases should explian how my entities will looklike.

Best,
Johan

Johan Normén

# re: Solving the Data Access problem: to O/R map or not To O/R map@ Saturday, October 09, 2004 1:20 PM

Hi Frans,
I posted a blog entry on my Italian blog about this post, your products, and the BOF session that you did at TechEd Europe...
I liked your post... and your deep knowledge on the subject!

Lorenzo Barbieri

# re: Solving the Data Access problem: to O/R map or not To O/R map@ Saturday, October 09, 2004 1:58 PM

Lorenzo: Thanks !! :)

Johan: The difference in insights is understandable, some methods appeal more to one group, other methods more to other groups.

Frans Bouma

# O/R Mappers - Entities and Domain Model@ Sunday, October 10, 2004 8:17 AM

TrackBack

# O/R Mappers - Entities and Domain Model@ Sunday, October 10, 2004 8:18 AM

TrackBack

# Re: Solving the Data Access problem: to O/R map or not To O/R map@ Sunday, October 10, 2004 8:23 AM

Hi Frans,

Another one of your truly excellent posts! I couldn't agree more with the whole ot of it.

For the record, NPersist is definitely a category 3) O/R mapper, but I'm looking at implementing more cat. 2 capabilities in it...do you agree when I say that I think a mapper /could/ take care of both 2) and 3) scenarios (although I'm certainly not there yet)?

/Mats

mats.helander@matssoft.com

# re: Solving the Data Access problem: to O/R map or not To O/R map@ Sunday, October 10, 2004 10:33 AM

Hi Mats :)

thanks! :) I think what you mean with your question is if it's logical to do. Most pure O/R mappers which do also tabular data-access don't use entity fields to build up the queries, but fall back to low level tabular approaches. I find that the same as offering a way to get the ADO.NET connection to the database and execute a raw SqlCommand directly. :)

Frans Bouma

# re: Solving the Data Access problem: to O/R map or not To O/R map@ Sunday, October 10, 2004 2:13 PM

Impressive post Frans!

Neo, another category 3 O/R mapper. Neo's focus lies on object-based domain models.

Paul Gielens

# re: Solving the Data Access problem: to O/R map or not To O/R map@ Sunday, October 10, 2004 3:07 PM

Hi Frans,

I wonder in which category will you put a DAL that has an Order class with Order.Id and Order.CustomerId (not Order.Customer).

This could be seen as a 1) because is totally based on tables (but it does not use DataSets), or as 2) because these are the the 'entities'.

I think the approach that uses Order.CustomerId is the one that's being used for a long time.

Andres Aguiar

# Re: Solving the Data Access problem: to O/R map or not To O/R map@ Sunday, October 10, 2004 3:30 PM

Ah, good point.

NPersist uses an OPath-like text-based query language called NPath and doesn't support Query Objects (at least not yet) and I agree that this brings several of the drawbacks that can put one in the mind of going back to just using SQL (such as typos etc)...but, still, using this approach can become a bit of a &quot;bridge&quot; between cat. 3) and 2) mappers, wouldn't you say?

/Mats

mats.helander@matssoft.com

# re: Solving the Data Access problem: to O/R map or not To O/R map@ Sunday, October 10, 2004 7:29 PM

Frans,

Great post!

I'd be interested in your thoughts on how the architecture of the sytem as a whole influences the choice bettween 2 and 3. For instance, rich client systems versus web client systems. (i.e. C#/Java code on the client verus web browser only on the client.)

In a rich client system, 2 seems more natural than 3 (to me). With domain objects, if the _same_ objects exist on both client and server, then there's the problem that some of their behaviours will only be meaningful on the server. But with behaviourless entities, it is safe, and meaningful, to pass them back and forward between client and server.

I wonder if this explains some of the differences you've noted between the MS and Java communities. I haven't seen any stats on this, but I'd guess that the Java world is dominated by web clients, while the MS world has a higher percentage of rich clients.

John Rusk

# re: Solving the Data Access problem: to O/R map or not To O/R map@ Monday, October 11, 2004 6:04 AM

@Andres: 1) would have: ds.Tables["Orders"].Rows[index]["CustomerID"] kind of constructs. 2) works with entities as the focus, cornerstone. Although an entity likely ends up as a table, you're not dealing with a table. So you can do order.Customer = myCustomer, but you can also do (for performance reasons) order.CustomerID = theCustomerID; Option 1) doesn't give you that flexibility, besides the traversal of the relationships between order and customer from both sides :)

@mats: to some extend it indeed would yes :). In the end it might be a nittpicking game how to call it. :) What I think is most important is that the developer can use the same constructs with entities as with dynamic constructed lists of data. So the developer should be able to refer to entity fields when constructing the lists, not table fields.

@John: the differences show up mostly in the aspect of n-tier development: with domain model oriented systems, the BL code is inside the entity class (mostly), which means there is not a separate middle tier doing just BL code, the code is largely inside entity classes. Most of the time you see the entity definitions defined in the BL tier with domain models, if you would place them in a separate tier, the BL tier would be rather thin. With behaviorless entities this is different: you have a rather thick BL tier, which contains the BL code to apply to entity objects. Most of the time, designers opt for BL classes which are representations of the processes taking place in the system.

The difference with Java is mostly because Java uses application servers, which offer generic (!) Enterprise java beans /container managed persistence and JDO support. So it's natural to go the pure O/R mapper route as it is offered by the platform you're dealing with.

Frans Bouma

# re: Solving the Data Access problem: to O/R map or not To O/R map@ Monday, October 11, 2004 8:03 AM

Frans,

I understand the difference between your 1) and 2), but I still don't see in which category you put the one that only has Order.CustomerId

Regards

Andres

Andres Aguiar

# re: Solving the Data Access problem: to O/R map or not To O/R map@ Monday, October 11, 2004 8:10 AM

Well, not 1) because Order is an entity, not tabular data in a generic container.

Frans Bouma

# re: Solving the Data Access problem: to O/R map or not To O/R map@ Monday, October 11, 2004 8:37 AM

OK

IMHO, here you have really two ways, not three.

You can see the relational model as your main model or you can see the object model as your main model.

In the first case, you want to deal with data structures that map the relational model. These can be generic data structures like a DataSet or a Hashtable, or plain .NET classes. I don't see why you need to talk about 'records' when you use a DataSet. Is essentially the same thing as when you use a class. The relational model rules, and you can use the same terms.

Where you load the data is not relevant. If I follow your reasoning, a typed DataSet is probably #2), and it's not essentially different than an untyped dataset.

The other approach is your #3.

Now, DeKlarit does not qualify in any of these categories, so I think there's another one ;). DeKlarit works with Business Components, that don't map to one table and that don't map to an object model.

Andres Aguiar

# re: Solving the Data Access problem: to O/R map or not To O/R map@ Monday, October 11, 2004 10:49 AM

"...however millions of software systems in Java using approach 3) ..."

Do you really believe there are so many systems in Java using pure Domain Model approach? ;) I won't ask for sources ;))

Deyan Petrov

# re: Solving the Data Access problem: to O/R map or not To O/R map@ Monday, October 11, 2004 11:24 AM

Hi Frans

I really don't get the difference between 1 & 2???
To me 2 just sounds like the (acedemic) theory behind 1)...but in reality there is no real difference I think.
1 is an API that is perfectly capable of working with "real-theoretically-correct-the-Chen-way" entities - it might very well be that most of the users of 1 don't really understand the theory behind relational databases fully...but they nevertheless use the concepts anyway just without knowing the exact Chen definition of an Entity ;-)

I think the main distinction is 1/2 vs. 3. Do you prefer your database or your Business/Domain objects to be the center of your modelling efforts. I think both can be perfectly valid approaches and both can be done to various degrees of theoretically correctness ;-)...heck in a lot of cases they will even produce similar models.
IMHO the Domain Model is preferable when it comes to modelling complex _behaviour_ in your app...but in many (if not most) apps the data is really the important part and the behaviour scarce, and then the Domain Model might be overkill (dealing with the impedence mismatch does have a price).

/Chris

Christoffer Skjoldborg

# re: Solving the Data Access problem: to O/R map or not To O/R map@ Monday, October 11, 2004 11:34 AM

The difference between 1 and 2 is more 'mindset': do you think in tables, or do you think in entities? Thinking in tables will not start you thinking in entity classes or will not drive you towards classes representing these tables, why would you, you think in tables and records, and a class is not a record nor a table.

Entity thinkers do think in that definition and want to see it represented in a class.

At least that's my idea of the matter :) As I said earlier, it can become nittpicking after a while.... :)

So basicly it's indeed 2 vs. 3 with as background: model drives classes vs. classes drive model. I added 1) because of the lack of necessity for a class-based data-access approach. This means that these people don't need an O/R mapper or O/R mapping technology application at all.

@Andres: is deklarit using entity objects like 'customer' under the hood or is that layer non-existend?

Frans Bouma

# re: Solving the Data Access problem: to O/R map or not To O/R map@ Monday, October 11, 2004 12:26 PM

If 1) is people who just define tables without any care about how they are defined, and that use untyped DataSets, then I'm not sure if it's worth to have a category for them ;)

Anyway, people in 1) still need a way to load data from the database to data structures, and they could use a O/R mapper.

People in 2) don't require an 'O/R mapper'. They require an easy way to load data from the database to data structures. For example, people in 2) could use DeKlarit, and we don't see it as an O/R mapper.

I see many people using the O/R mapper term for any DAL technology that loads a data structure, and that's not the case.

DeKlarit is using the entities defined in the relational model under the hood ;).

We don't see the need of having the 'Customer' entity in addition to the Business Component, as you always want to deal with Business Components (sometimes a BC just maps to one table..).

Andres Aguiar

# re: Solving the Data Access problem: to O/R map or not To O/R map@ Monday, October 11, 2004 12:38 PM

"If 1) is people who just define tables without any care about how they are defined, and that use untyped DataSets, then I'm not sure if it's worth to have a category for them ;) "
heh :) Well, for an article about solving the data-access problem, I thought it would be ok to include that 'solution' as well...

I have tried to avoid 'people in 2 need an O/R mapper', I hope I succeeded ;) because an O/R mapping technology using application is what they need, which could indeed be DeKlarit as you described.

Your last sentence is interesting: what if I have a business component SalesOrder, which contains 'Customer', 'Order' and 'OrderDetails' entities. Do I have to create a BC for Customer to use Customer separately (for example I want a customer and its orders) or can I use the entities defined under the hood, because they're already used in the BC's ?

Frans Bouma

# re: Solving the Data Access problem: to O/R map or not To O/R map@ Monday, October 11, 2004 1:01 PM

A Business Component maps to the data you need for a CRUD use case.

If you want to create Customers separately from the Orders, then you'll need to define a Customers BC, that will probably have all the related customer Information like addresses, contacts, etc.

You probably won't have an Orders collection in the Customers BC. You can retrieve them easily if you want (orders.FillByCustomerId) but if there's no use case doing CRUD with that set of data, then you won't have a BC with that structure.

On the other hand, you could create a SalesOrders BC that has, as part of the header level, Customer attributes. For example, I could want to retrieve/update the Customer.Balance. In that case I'll be able to load/update the Customer fields I want without loading the Customer data structure.

Mapping this to existing concepts, it's a hierarchical updateable view that's eagerly loaded, and, roughly, you build one for each use case.

Andres Aguiar

# re: Solving the Data Access problem: to O/R map or not To O/R map@ Monday, October 11, 2004 1:21 PM

I'm not sure I really see a big difference between the "Entity camp" and the "Domain Model camp" when it comes to O/R mappers. The minute you decide to "objectify" your relationships so that you can navigate directly from order to OrderLines without going to the Orderlines table and look for the Order Id, is when you get the need to map from the relational model to the object one i.e _Object-Relational mapping_.

This mapping can obviously be done by hand but since it's tedious, repetitive and occurs all over the place then it makes sense using a tool to abstract that functionality away.
Most O/R mappers go a lot further than that and offers you all kinds of extra productivity enhancing stuff...but such productivity tools also exists in the pure data driven camp as well.(MS Datasets and all the tools built around those, the old LLBLGen perhaps?).

My point is that both 2 and 3 probably have the same O/R mapping needs because they have both choosen to "objectify their relationships".

So much for the technical part. Strategically I can understand if Frans is trying to position LLBLGen Pro as a tool for all the MS developers currently moving from 1 to 3...but that's probably another discussion ;-)

/Chris

Christoffer Skjoldborg

# re: Solving the Data Access problem: to O/R map or not To O/R map@ Monday, October 11, 2004 1:53 PM

I also see your category 2) to be very broad.

In that category you have :

- O/R mappers that try to navigate relationships and that have a query language or similar that let you express queries in term of the object model

- a DAL that loads shallow entities from a database without navigation

- DeKlarit ;)

Andres Aguiar

# re: Solving the Data Access problem: to O/R map or not To O/R map@ Monday, October 11, 2004 2:52 PM

Hi Frans,

Sorry for being a bit late here.
:-)

The way I understood your classification was that you saw two dimensions:

- Modeling focus (OO or Relational)
- API (OO or Relational)

1) Relational for both Modeling focus and API.
2) Relational for Modeling focus, OO for API.
3) OO for both Modeling focus and API.

Did I totally misunderstand you?

Best Regards,
Jimmy
www.jnsk.se/weblog/
###

Jimmy Nilsson

# re: Solving the Data Access problem: to O/R map or not To O/R map@ Monday, October 11, 2004 3:08 PM

Very good Frans, I think you've done a great job of clarifying the playing field.

Darrell

# re: Solving the Data Access problem: to O/R map or not To O/R map@ Monday, October 11, 2004 3:16 PM

Chris: heh :) Well, the primary focus of the article is: what are my options for solving the data-access problem? I've tried to avoid to think in aspects of applications which follow a given philosophy, I've tried to document exactly those philosophies.

So instead of looking at the wide range of applications on the market, I've tried to start with the problem, and what are the theoretical solutions for it.

Of course 2) and 3) rely heavily on O/R mapping as a technology. I've tried to make the distinction between the two because I find it a fundamental difference that you start from the relational model vs. you start from the domain classes. In the past year I've learned that it is very hard to talk about O/R mapping as a data-access solution. The reason is simple: people don't know what O/R mapping is.

Most developers do know the problems with data-access however. So, to make the problem more solveable, i.e.: to present solutions in a more understandable way, I opted for the approach I've chosen in this article: once the person who HAS the problem knows in which area (niche if you will ;)) he/she has to look for a solution, the quest for that solution will be more efficient and satisfying.

I for example see category 2) tools more an area for the tools which utilize O/R mapping under the hood but do more than just O/R mapping and the category 3) tools more for tools which do solely O/R mapping

Jimmy: Exactly, your list is a good summary :)

Andres: Your last posting covers it ok :), although DeKlarit also creates databases following the classes you designed.

Frans Bouma

# re: Solving the Data Access problem: to O/R map or not To O/R map@ Monday, October 11, 2004 3:26 PM

Mark Fussel defined 4 levels of OR/M :
(1) Pure relational -- no classes, focus on tables, sql or stored procs (think DataSets),
(2) Light object mapping -- uses classes, but manually mapped to tables (think CSLA and most other frameworks),
(3) Medium object mapping -- object model, sql either code gen or at runtime by engine -- usually support relationships, some caching, portability, and object queries (most O/R mappers),
(4) Full object mapping -- supports composition, inheritance, polymorphism, no base classes or interfaces (supposedly Hibernate in Java).

I know my WilsonORMapper falls short on some of the level 4 things, although it doesn't require a base class and interfaces are optional, while the few mappers in .NET that "might" have most of the level 4 features seem to fall short on the implementation side by requiring base classes and interfaces. Maybe NHibernate will succeed, but from what I've seen of their source code, I agree with Frans that they've got a long way to go still.

Paul Wilson

# re: Solving the Data Access problem: to O/R map or not To O/R map@ Monday, October 11, 2004 3:44 PM

Jimmy/Frans

I'm sorry to be a PITA but I still don't see how

>2) Relational for Modeling focus, OO for API.

If you do Order.CustomerId and not Order.Customer then I'm not sure if you can say that the API is OO. If I follow Jimmy, then Order.CustomerId is 1) but if I follow Frans it's 2)

Cheers ;)





Andres Aguiar

# re: Solving the Data Access problem: to O/R map or not To O/R map@ Monday, October 11, 2004 8:57 PM

OK, I just read through all this. I'm not sure my model is represented exactly. If you assume that a domain model approach must persisted to a database, and you're starting from scratch, #3 makes sense. But, if you think of a domain model without a requirement for a database at all does it look different?

What is the source of the values/data that constitutes your objects? If you use an O/R tool, it must be a database. It can't be a cache, web service, message queue, test data, serialized object from your qa copy, index data from lucene, a sharepoint list, and well, hopefully you get the idea. OK, you can probably come up with examples to solve some of these, but do you see what I mean? Consider a statement where when new it's built from a query to a relational database, but after it's run, its constructed from a saved denormalized table in a reporting database. Same object, same attributes, same entity, different sql, different connection.

Jimmy's idea of a Repository he has been blogging about answers part of the question I think, but not if it and all it does are generated code ;-) So, have I missed something?

Philip Nelson

# Re: Solving the Data Access problem: to O/R map or not To O/R map@ Tuesday, October 12, 2004 5:23 AM

&gt;What I think is most important is that the developer can use the same constructs with entities as with dynamic constructed lists of data. So the developer should be able to refer to entity fields when constructing the lists, not table fields. &lt;

I'm certainly with you there! :-)

/Mats

mats.helander@matssoft.com

# re: Solving the Data Access problem: to O/R map or not To O/R map@ Tuesday, October 12, 2004 7:47 AM

Hi Philip,

Long time, no see!

That's a good point that the Domain Model doesn't have to be persisted to a database. I have some texts about that coming up... But don't hold your breath.
:-)

Oh, and my Repositories aren't generated code. Instead, different Aggregates have pretty different Repositories so they are currently hand-written, and most of the work are off-loaded to the chosen infrastructure. That said, I can see a point in generating the basic stuff for each Repository for a certain infrastructure choice.

Best Regards,
Jimmy
www.jnsk.se/weblog/
###

Jimmy Nilsson

# re: Solving the Data Access problem: to O/R map or not To O/R map@ Tuesday, October 12, 2004 10:55 AM

I don't think its fair to say an O/R mapper requires a database. My mapper simply requires an ADO.NET provider that communicates with something that understands basic sql syntax. I've built an open-source XmlDbClient (on GotDotNet) that is just such an ADO.NET provider for XML. My mapper can use it to persist and retrieve data from an XML file now, and you could similarly build other ADO.NET providers to add support for other stores. The cool thing about this approach is that the ADO.NET provider is still something you can continue to use even if you change your opinion of O/R mappers, so its a minimal amount of work that is highly reusable. You can also easily have an instance of the mapper to retrieve from one data store and another instance to persist to another data store (at least with most mappers), so I don't think that scenario is all that difficult either.

Paul Wilson

# re: Solving the Data Access problem: to O/R map or not To O/R map@ Wednesday, October 13, 2004 12:28 AM

Did you considers also the iBatisNet (http://ibatisnet.sourceforge.net/) solution ?

Pierre Greborio

# 100, CopySOurceAsHtml, SPs versus SQL e mais vergonhas@ Thursday, October 14, 2004 10:42 AM

TrackBack

# Edit @ Friday, October 15, 2004 5:49 PM

TrackBack

# Database best practices@ Sunday, October 17, 2004 11:01 AM

Funny discussion over here, essentially replaying the normal "is a database a pile of data, or an application?" game all over. I haven't seen DBAs so badly off in a while, but then, I don't see much of MS SQL...

TrackBack

# What about Templates and Multiple Inheritance @ Monday, October 18, 2004 6:24 AM

TrackBack

# Followup: The Absence of MI @ Monday, October 18, 2004 6:25 AM

TrackBack

# re: C# Edit and Continue Announced@ Monday, October 18, 2004 10:03 PM

TrackBack

# re: Solving the Data Access problem: to O/R map or not To O/R map@ Monday, October 18, 2004 10:59 PM

Just some trivia about the origin of Microsofts Table driven approach.

During the days of MS Access 1.0 there was no such thing as table based data access. No datasets and no recordsets. The JET (Joint Engine Technology) group was the first team at MS (and in the world) to have anything like that.

The leader of this team was an Indian gentleman named Nrinda Vrama. Hope I spelled it right. One day his team was brain storming about the name for this new technology that returns result sets - but not static ones - these result sets were dynamic. That was a big thing in those days. In walks Tod Nielsen. He heard the discussion and said "hmmm dynamic result sets... dynamic sets ... hey I've got it - its a DYNASET ".

That was the beginning of a long long history of table based data access at MS.

My personal belief is that MS could not get its 6 million VB developers to retrain in entity or domain model approaches so it found a very clever way to drag all of them into .NET by providing a rather similar paradigm to what had been done for the past 10-15 years.

So there you have it. The reason for datasets and datatables in ADO.NET is a straight forward BUSINESS decision. Is it a good software engineering choice? I suppose for small or mid-sized quick apps it is. But anything appreciably large can benefit from the entity or domain approach discussed in this entry.

Thomas Wagner

# Data Mapping@ Tuesday, October 19, 2004 1:27 AM

Data Mapping

TrackBack

# SQL Server 2005 Delay Holding Back VS 2005 Too...@ Tuesday, October 19, 2004 11:11 AM

SQL Server 2005 Delay Holding Back VS 2005 Too...

TrackBack

# Visual Studio 2005 Release Delayed@ Tuesday, October 19, 2004 1:22 PM

TrackBack

# re: SqlServer 2005 and VS.NET 2005 delayed@ Tuesday, October 19, 2004 2:43 PM

I don't mind the long delays between major releases...I just mind that lack of fixes/patches/small releases between major releases.

Karl

# SqlServer 2005 and VS.NET 2005 Delayed - Where's My New and Improved Webforms Designer?@ Tuesday, October 19, 2004 3:11 PM

TrackBack

# Dear Microsoft, please pay attention to your developer customers...@ Tuesday, October 19, 2004 3:45 PM

TrackBack

# More on Code Generators and O/R Mappers@ Tuesday, October 19, 2004 4:27 PM

TrackBack

# re: SqlServer 2005 and VS.NET 2005 delayed@ Tuesday, October 19, 2004 4:33 PM

Of course the problem is that MS has basically not made lots of fixes -- instead telling us that some of these things will be fixed in the next version -- like the webform designer mentioned by Frans. And of course even the fixes they did make in their recent SP didn't get a unique version number -- which has caused problems of its own!

Paul Wilson

# re: SqlServer 2005 and VS.NET 2005 delayed@ Tuesday, October 19, 2004 8:04 PM

So true. I can't build any of my web applications in Visual Studio 2003 because it is absolutely horrible at modifying my custom changes to the source code. It is a distant second to Macromedia Dreamweaver.

I just stopped renewing my subscription to Macromedia DevNet because Visual Studio 2005 is finally going to have a decent webform designer. I may have jumped the gun too early.

VS 2005 is way too hyped too early. Very frustrating. No wonder each release of VS is a glory... they wait for an eternity to release new features and bug fixes. Wait a minute. There were no updates to VS 2003.

David Hayden

# Will the next version of Visual Studio be @ Tuesday, October 19, 2004 10:45 PM

TrackBack

# Will the next version of Visual Studio be @ Tuesday, October 19, 2004 10:46 PM

TrackBack

# Visual Studio 2005 may become Visual Studio 2006 - that sucks!@ Tuesday, October 19, 2004 11:33 PM

TrackBack

# Visual Studio 2005 Delay Rumors@ Wednesday, October 20, 2004 1:04 AM

TrackBack

# Visual Studio 2005 and Sql Server 2005 Delayed!@ Wednesday, October 20, 2004 2:49 AM

TrackBack

# Provider Model Madness@ Wednesday, October 20, 2004 2:54 AM

TrackBack

# Provider Model Madness@ Wednesday, October 20, 2004 2:54 AM

TrackBack

# VS2005 Delay Rumour FUD@ Wednesday, October 20, 2004 3:46 AM

VS2005 Delay Rumour FUD

TrackBack

# re: SqlServer 2005 and VS.NET 2005 delayed@ Wednesday, October 20, 2004 9:17 AM

Hmmm, why does it think it has a trackback twice? I didn't supply this url in the advanced section of the post, only the url... Strange.

Dennis v/d Stelt

# ARGH - SqlServer 2005 and VS.NET 2005 delayed @ Wednesday, October 20, 2004 3:52 PM

TrackBack

# ARGH - SqlServer 2005 and VS.NET 2005 delayed @ Thursday, October 21, 2004 9:38 PM

TrackBack

# Who needs Stored Procedures, anyways?@ Thursday, October 28, 2004 6:50 PM

It's intended as sarcasm, but I believe this Daily WTF entry on Stored Procedures should be taken at face value: I'm sure we've all heard, over and over, that inline SQL is generally a bad practice, and that we...

TrackBack

# re: SqlServer 2005 and VS.NET 2005 delayed@ Sunday, October 31, 2004 12:21 AM

Im glad Im still using ASP 3.0 with PrimalScript 3.1 (www.sapien.com). I may switch when VS 2005 comes out. Maybe.

Anton

# re: SqlServer 2005 and VS.NET 2005 delayed@ Monday, November 01, 2004 3:00 PM

There are a lot of things within Visual Studio .Net that could be improved, and I don't mind waiting a little longer as long as I get the things I want.

I am suggesting we all put our heads together, list out all of the things we want added/changed:

http://javakid.blogspot.com/2004/10/visual-studio-net-what-would-you-like.html

and tell Microsoft about it by entering in suggestions through the MSDN Product Feedback submission form, and then actively voting on the things we want the most!

JavaKid

# EA: White collar slavery@ Friday, November 12, 2004 1:18 AM

TrackBack

# re: EA: White collar slavery@ Friday, November 12, 2004 7:26 AM

This is shocking and disgusting – The problem also is that EA controls such a big market of the gaming industry that the engineers and artist can probably not really leave to go somewhere else.

This will make me think twice about buying another EA game – but who will I be punishing? EA or their staff – and they seem to be doing that job pretty good by themselves.

Wayne Barker

# re: EA: White collar slavery@ Friday, November 12, 2004 10:36 AM

Frans, this is very common in the US. I have had personal experiences were the CEO of the company told me "make it happen by the deadline - I dont care how many hours it takes. If you can't, we won't need your services" Many people over here just go with the program laid out by management. Its sad.

Thomas Wagner

# re: EA: White collar slavery@ Friday, November 12, 2004 10:37 AM

Thomas: Hmmm. I heard the working conditions are not that great in the US but this is very bad... so a manager can fire you for whatever reason?

Here, if you have a contract, it's not a one-way street, it's a 2-way street: the employer has an obligation to you too and can't drop the contract for whatever reason, he first has to ask for a license to fire you in court. (basic procedure, but still requires effort from the employer, and if the reason they give is not enough, the judge won't agree to it and the employer can't fire you.

Frans Bouma

# re: EA: White collar slavery@ Friday, November 12, 2004 11:36 AM

I just got done reading this article as I was going through my blog reader! My first thought was: quit! When you are smart and a good programmer, people need you...and you deserve better.

Sean Chase

# RE: EA: White collar slavery@ Friday, November 12, 2004 11:58 AM

My sentiments exactly. You work to live!

http://haacked.com/archive/2004/10/16/1376.aspx

haacked@yahoo.com (Haacked)

# re: EA: White collar slavery@ Friday, November 12, 2004 12:11 PM

Looks like this story has had an effect. Slashdot is reporting a potential class action lawsuit.

http://slashdot.org/article.pl?sid=04/11/12/0537234

Haacked

# re: EA: White collar slavery@ Friday, November 12, 2004 12:13 PM

http://www.gamespot.com/news/2004/11/11/news_6112998.html

might be trouble in EA land now.

Mike

# re: EA: White collar slavery@ Friday, November 12, 2004 5:36 PM

I thought that i will just add a bit. I am from South Africa and here the labour laws are very strict (good). A person normally works 40 hours a week here with a required 1hour break every 4 hours worked. if the employer requires you to work overtime - you have the right to reject :) however if you accept then you are not allowed by Law to work more than 45 hours a week.

And i am suppose to live in a 3rd world country - Yah right i'll rather live here and have rights than live in the USA (1st world country) that allows these type of things.

Wayne Barker

# re: EA: White collar slavery@ Friday, November 12, 2004 8:48 PM

Frans - I agree that this is some scummy sh1t - but to be honest, they should have just walked. There's plenty of work these days and plenty of software companies that are dying for people. I intentionally don't talk about the working conditions at my current company because they are so good and I don't want to gloat or seem boastful. The same holds for my last company. With only one exception, every company i've ever worked for had really really great working conditions and by in large, that's pretty much the standard for the industry. Yes, you work a lot - but you get treated well and compensated well. Accounting and Law are where Real exploitation happen because there are a lot of A-holes there that think screwing with the new people and making them 'pay their dues' is a good thing.

I mean, let's say you start working and you're pulling in 150k a year and then the company starts this crap. Yes, you might not be able to run right out and get another job but there's plenty of jobs that pay pretty darned well out there. And if you just bought a 400k house and new Porsche so you need that salary - how is it the company's fault?

i'm not condoning EA - I think it's disgusting and i do concur with your point - but I think 20 top developers taking a walk would have done much more to change the culture and been a lot better for every party involved. Losing a job can be a setback or opportunity depending on how you behave afterward...

I don't think I'll be buying and EA stuff in the future though.

Bill

# re: EA: White collar slavery@ Friday, November 12, 2004 10:16 PM

Frans said: "Hmmm. I heard the working conditions are not that great in the US but this is very bad... so a manager can fire you for whatever reason? "

Unfortunately, many (most?) employee / employer agreements in the US are "at-will". That means they can fire you for no reason. Of course, it's a two way street, meaning that the employee can leave for no reason.

Michael Eaton

# re: EA: White collar slavery@ Saturday, November 13, 2004 7:32 PM

Michael: yes, that's true but there's one thing that I doubt most other countries have to deal with as bad as here - laywers. You can be fired for just about anything, but you can also sue for just about anything and there are tons of attorneys that aren't afraid of frivilous cases.

Bill

# Working hours@ Sunday, November 14, 2004 11:03 PM

Working hours

TrackBack

# Mapping objet/relationnel pour .NET@ Saturday, November 20, 2004 11:32 PM

TrackBack

# Mapping objet/relationnel pour .NET@ Sunday, November 21, 2004 4:06 AM

TrackBack

# re: @ Monday, November 22, 2004 7:00 PM

TrackBack

# Stored Procedures vs. Dynamic SQL@ Wednesday, November 24, 2004 2:53 PM

TrackBack

# Stored Procedures are good or bad?@ Wednesday, November 24, 2004 3:40 PM

Stored Procedures are good or bad?

TrackBack

# LLBLGenPro@ Sunday, November 28, 2004 4:09 AM

TrackBack

# Language Oriented Programming@ Tuesday, November 30, 2004 8:37 PM

Language Oriented Programming

TrackBack

# Blog for the masses@ Thursday, December 02, 2004 9:45 AM

TrackBack

# Blog for the masses@ Thursday, December 02, 2004 10:15 AM

TrackBack

# re: Object^H^H^H^H^H MSN Spaces@ Thursday, December 02, 2004 10:36 AM

Everything MSN has always been too slow for me. That's why I will stick with Blogger even though SPACES has the new look, features appeal.

Hassan Voyeau

# Color Coding in Visual Studio@ Friday, December 03, 2004 6:59 AM

TrackBack

# re: VS.NET 2003 C# code-editor tip of the day@ Friday, December 03, 2004 10:16 AM

Nice, but strings are always pink for me, strings should just be pink. Don't know why though ;)

OmegaSupreme

# re: VS.NET 2003 C# code-editor tip of the day@ Friday, December 03, 2004 10:30 AM

I usually color Numbers and Strings dark blue so that I can see numbers too. :)

David Stone

# re: VS.NET 2003 C# code-editor tip of the day@ Friday, December 03, 2004 10:40 AM

Pink? You used too much frontpage! ;)

Ah I forgot numbers, good tip.

Frans Bouma

# re: VS.NET 2003 C# code-editor tip of the day@ Friday, December 03, 2004 10:41 AM

Strings I show with light grey background.

Operators with RED but only for C# since in VB it doesn't work and is still not fixed for Whidbey so go vote VB devs reading Frans's blog (how many do you think there are) :-)
http://lab.msdn.microsoft.com/productfeedback/viewfeedback.aspx?feedbackid=9497e417-5f3c-4813-988f-0a52546fd301

Daniel Moth

# re: My blog stats make me giggle. Or, I mean, laugh.@ Friday, December 03, 2004 11:08 AM

TrackBack

# re: VS.NET 2003 C# code-editor tip of the day@ Friday, December 03, 2004 3:38 PM

While you're there, give ProFont a try.
http://www.tobias-jung.de/seekingprofont/

Rob

# re: VS.NET 2003 C# code-editor tip of the day@ Friday, December 03, 2004 4:00 PM

I always use a black background:

Text = White
Function Calls And Operators = Yellow (Bold)
Strings = Lime
Numbers = Red (Bold)

...Must be from my pascal days - I think. :)

Wayne Barker

# re: VS.NET 2003 C# code-editor tip of the day@ Friday, December 03, 2004 5:08 PM

Frans ....

I tried this in VS2005 - and din't like the super dim xml comments, so I went back in there and hit "Use Defaults" -- and in VS2005 --- I got VS2003 looks back .. LOL .. I've reported this as a bug to MS.

Sahil Malik

# re: VS.NET 2003 C# code-editor tip of the day@ Friday, December 03, 2004 9:47 PM

Clearly, you also meant to change the background to the light gray on Xml Doc Tags as well. Otherwise, it just looks goofy...

Matt Berther

# re: VS.NET 2003 C# code-editor tip of the day@ Saturday, December 04, 2004 5:09 AM

Matt: that's what I meant with Xml Tag ;)

Wayne: ieks! TurboPascal!

Frans Bouma

# re: VS.NET 2003 C# code-editor tip of the day@ Saturday, December 04, 2004 4:35 PM

We always colour strings red because their use should be highlighted as they should be localized and not embedded in source files...

James Snape

# re: VS.NET 2003 C# code-editor tip of the day@ Monday, December 06, 2004 2:52 AM

Turbo Pascal rules! :)

And you should definitly try ProFont! I use it all the time, every resolution the code is still readable. In 1024x768, in which I'm currently working in, is also still doable with ProFont.

Dennis v/d Stelt

# re: Language Oriented Programming.@ Tuesday, December 07, 2004 4:10 PM

Reading this article, I couldn't help but think of CodeSmith and other code generation utilities.

Essentially, all you need is a mapper between a DSL and a generic language like C#. Isn't this what CodeSmith does already by allowing users to define a template to map a DSL (say a SQL Server database schema) into code?

I'll have to read the second part too to make a better judgement. But from the first part, it doesn't seem like it's necessarily anything revolutionary.

Charles Chen

# How do you see data? table, entity or domain model?@ Wednesday, December 08, 2004 4:02 AM

TrackBack

# re: VS.NET 2003 C# code-editor tip of the day@ Wednesday, December 08, 2004 8:13 AM

I don't like bold fonts in the editor (like you suggest for the operators). VS.NET 2003 has problems with positioning the cursor when I use Lucida Console in an 8pt bold face. Other fonts, like Courier work fine though. Pretty strange...

Ramon de Klein

# re: VS.NET 2003 C# code-editor tip of the day@ Wednesday, December 08, 2004 8:18 AM

Hey Ramon, da's lang geleje! :)

Frans Bouma

# WinFS Slips Again@ Sunday, December 12, 2004 4:13 AM

Seen on Frans Bouma's blog, the news that WinFS has slipped yet again. Is WinFS just a huge blackhole project? Who is the Captain Ahad driving this project on?...

TrackBack

# WinFS is delayed yet again.@ Sunday, December 12, 2004 6:18 AM

WinFS is delayed yet again.

TrackBack

# re: WinFS delayed again: corporate politics or incompetency?@ Sunday, December 12, 2004 8:26 AM

You're probably right, but I've always had a slightly different impression of what MS wants to do with WinFS -- of course it might be the wrong impression. I thought they were not just wanting to move the "file" to the relational datastore, but also have a significant amount of the "file" schemas to be an integral part of WinFS. One of the examples I've seen, although again maybe I misunderstood, was that whether you use Outlook or Outlook Express or some non-MS client, all of these apps would work with the same schemas for contacts, calendar, email, etc. Similary for all the imaging applications, and I assume most other such common apps. These standard schemas would then make search, the very thing you state is what's important right now, much more workable!

OK, so that's what I've thought WinFS was supposed to be. That doesn't seem trivial to me, although I think the difficulties would be much more on the schema design side than the technical side, as you have rightfully noted. What troubles me, if my understanding is anywhere close to correct, is that I don't want MS doing anything like this at all! They may know what's needed for Outlook and Outlook Express, but they have no idea what my custom apps need, so are they going to make this open enough to be usable for everyone? And do I really want my information stored in such a standard schema anyhow, since it seems that will just make it easier for other rogue apps to get to all my valuable data?

So I think that either WinFS should be doable and MS is just screwing up again, or they are going for something much more -- something that may make things far easier -- for both legit uses and other rogue uses too!

Paul Wilson

# Discussion Of Different Development Methods@ Sunday, December 12, 2004 9:39 AM

TrackBack

# Discussion Of Different Development Methods@ Sunday, December 12, 2004 9:41 AM

TrackBack

# Discussion Of Different Development Methods@ Sunday, December 12, 2004 9:41 AM

TrackBack

# re: WinFS delayed again: corporate politics or incompetency?@ Sunday, December 12, 2004 10:39 AM

It's a little misleading to think that Microsoft won't produce a desktop search product without WinFS. It seems Microsoft will be coming out with a Beta for MSN Desktop Search soon (maybe Monday, according to this article: http://blogs.msdn.com/msnsearch/archive/2004/12/10/279709.aspx).

Like Paul Wilson I don't think search is the goal of WinFS.

Darrell

# WinFS delayed again@ Sunday, December 12, 2004 12:30 PM

TrackBack

# re: WinFS delayed again: corporate politics or incompetency?@ Sunday, December 12, 2004 4:21 PM

Frans: yeah, come back on Monday. And watch the videos on Channel 9. You'll see how a team shipped a really cool new product in only seven months.

Robert Scoble

# WinFS delayed@ Sunday, December 12, 2004 4:55 PM

WinFS delayed

TrackBack

# re: VS.NET 2003 C# code-editor tip of the day@ Sunday, December 12, 2004 5:20 PM

Resharper applies some of its own coloring schemes to properties, methods, etc and I find the color distinctions to be very useful.

Nas

# re: WinFS delayed again: corporate politics or incompetency?@ Sunday, December 12, 2004 5:25 PM

WinFS has little [if anything] to do with desktop search. I've written about this in the past at http://www.25hoursaday.com/weblog/PermaLink.aspx?guid=bfc38a8a-41e4-4303-b37f-760fb096d0f0 and http://www.25hoursaday.com/weblog/PermaLink.aspx?guid=20c54323-3236-44e9-8095-87b75a71ed8d

Dare Obasanjo

# WinFS Delayed Again@ Sunday, December 12, 2004 6:57 PM

Frans Bouma blogs about the MS announcement to delay WinFS yet again until at least late 2006 - and he isn't very happy about it....

TrackBack

# re: WinFS delayed again: corporate politics or incompetency?@ Sunday, December 12, 2004 7:37 PM

Desktop Search would be easier with WinFS but today's desktop search products (like my fave, the incredible and free Copernic Desktop Search) use an index instead. WinFS was my favorite "pillar" of Longhorn but I think MS got a lot of wild ideas and tried to incorporate them all and ended up with something they just couldn't handle. It is very unfortunate.

I hope the lack of ObjectSpaces means more people will try out LLBLGen Pro.

Shannon J Hager

# re: WinFS delayed again: corporate politics or incompetency?@ Sunday, December 12, 2004 8:09 PM


Paul, I doubt they are working on standard schemas, because my understanding is that there is no such thing as a standard schema. Take something as common as an Person. How can you define that type without any context? Two applications can view what a Person is very differently.

I think the hard part that Microsoft is trying to solve is unifying the different data-formats. Let's examining a few for a moment: relational sets, objects, XML, LDAP directory, registry, file systems. These are all examples of structured data. Which means you can define their structure with schemas. But the rules for each data-format are a little different, in some cases drastically different (object/relational might be the two formats with the most differences). Now why do we have all of these different formats? Well, each has its own unique advantages. XML is verbrose and transparent. LDAP is perfect for apps that need to read hierarchical data quickly and rarely need to write it. Relational sets are perfect for transactions and indexing very large data. Objects do not persist but are the ideal in-memory format for application logic.

Anyway, I believe Microsoft is trying to get at the heart of what a structured data-model is. Because you could have an API that lets you define schema structures that work in multiple (or all?) data formats.

Either that's what they're developing, or they're trying to reduce our need for so many formats by creating a new best-of-breed format. I'm not sure that's possible. Surely there is no single data-format that could solve all the app needs I've mentioned above.

So to comment on Frans's options. I think its either #1 (its very difficult) or option #4 (its impossible). Certainly its not #3 (they don't care) and I doubt its #2 (they suck).

Gabe Halsmer

# It's happened before...@ Monday, December 13, 2004 1:39 AM

Anyone remeber the talk about this new object-oriented desktop for Windows NT that was going to make IBM's object-oriented desktop for OS/2 look sick? Was that going to come out in Cairo? I forget, I'm pretty codename-deaf to begin with, all I remember is that this was the coming thing, and whatever happened to Windows 95/98 it was just a stopgap.

Remember that what we got in NT4 was the Windows 95 desktop. It even had 16-bit code back in its hindbrain, like some digital r-complex left over from the precambrian. And that's what we still have on the desktop... the nifty new object-oriented desktop got shuffled off to the same place Xenix and Microsoft Bob ended up.

Peter da Silva

# re: WinFS delayed again: corporate politics or incompetency?@ Monday, December 13, 2004 1:42 AM

Even if Desktop Search was a priority I don't think a company with 10,000 developers don't have enough people left to continue on WinFS. However your article and reasoning is very clear and pleasant to read. Its still possible thats its just politics. Abandening development on IE as soon as competition was killed has proved that many MS managers doesn't really have genuine instrest in improving products unless there is a competitive pressure from up and which might potentially hurt their ability to draw profit charts for their divisions at theie year end meetings. However I'm guessing that unlike IE team which was over 1000 people, a really expensive monster to keep alive, the WinFS team is really small. I don't think maintaining it will bring down profit levels of core Windows division significantly and it would be hard to drop it anyway when most other team managers would think this as an important piece. So I would cut out reason #3. So with best guesses, probability is that the WinFS team had a major screw up or the old Windows file system veterans just came to that "age" where everything looks a lot longer ;)

Shital Shah

# re: WinFS delayed again: corporate politics or incompetency?@ Monday, December 13, 2004 4:04 AM

Dare: You say: "At its core, WinFS was about storing strongly typed objects in the file system instead of opaque blobs of bits. The purpose of doing this was to make accessing and manipulating the content and metadata of these files simpler and more consistent." (in one of the links you provided). I don't think this is true. The reason for this is that what you describe is exactly why object databases failed: data is just data, it depends on the CONTEXT what the meaning of it is. So storing it in a strongly typed way is ok, as long as the strong type is not too stong, i.e. it has to describe the data to retrieve the data, not the meaning of the data.

Let's say you're right. Why would WinFS be necessary? Would all of a sudden developers drop support for oracle, sql server and friends and store their data in WinFS? I hope not. WinFS is 'a' (not the) way to expose data of an app to a generic interface, f.e. the shell search functionality, so the user can find data back (or better: make information out of data, by specifying a query and data matching the query becomes information in the context of the query. This is fundamental. ) and open the app to grab the data in context. Or do you think that when outlook 2009 stores the contact information in WinFS, you can use it from a 3rd party app? You still need office/outlook.

Desktop search engines do the same: they index data, have a query interface and the user can find data back, open the app to use the data in context. (data found in a PDF can only be utilized if the pdf is read/opened)

So I absolutely disagree with your on the fact taht WinFS is not about search. Its sole purpose is to provide search to the desktop, by providing a platform for application developers to make searching any type of data very easy.

Or are you thinking it is for application developers so they don't have to deal with databases anymore, just store objects in the 'store' ? That would be a big problem, because it would cut into their sqlserver sales on one side and it would provide a problem to the developer on the other side: when to move from filesystem object store to a database because the store gets too big? And as if there are no solutions to using data as objects today ;)

Frans Bouma

# re: WinFS delayed again: corporate politics or incompetency?@ Monday, December 13, 2004 5:04 AM

I mostly agree, it´s a political decision. But partly I also think, it has to do with the vision behind WinFS: Microsoft has/had too big a vision of what it wanted to accomplish. It wants to make everybody happy, to finally provide a silver bullet for all(?)/most data access problems, to close the impedance mismatch chasm between OO and relation world. And I guess, this task is (currently) too large even for Microsoft - or maybe especially for Microsoft since they need to provide backward compatibility with all sorts of stuff.

So my conslusion is: Live in the now! The larger the hype around Longhorn technologies the more I get the feeling I should look at what I´ve got today.
It´s nice to get a glimpse of what the crystal ball shows once in a while. But doing business today, most companies cannot (and should not) focus so much on what possibly might come sometime in the future. Avalon, Indigo, WinFS: Really nice - but not manifest for many, many months. And that means: not relevant for most (not all) developers.

So even though I´m a Microsoft Regional Director for Germany, I shut out most of the noise coming from the hype around Avalon, Indigo and WinFS. The only real and tangible thing, right now, is Whidbey Beta 1. .NET 2.0 and improvements to VB.NET/C# and SQL Server I can already use today and which will be generally available in June 2005 are (somewhat) relevant to my customers and me.

Above that... I look beyond Microsoft. There´s more to care about than Avalon, Indigo and WinFS. What about O/R Mapping for .NET today? What about easier GUI programming today? What about tuple spaces/shared virtual memory for (cross-platform) communication? It´s all here today and needs to be mastered.

Ralf Westphal

# re: WinFS delayed again: corporate politics or incompetency?@ Monday, December 13, 2004 10:36 AM

Frans, just to add a little more perspective to the ReiserFS comparison, you're correct that ResierFS (on paper) seems to do a small subset of what is envisioned for WinFS. But Hans Reiser himself says...

>>Andrew, we need to compete with WinFS and Dominic Giampaolo's filesystem for Apple, and that means we need to put search engine and database functionality into the filesystem. It takes 11 years of serious research to build a clean storage layer able to handle doing that.
Reiser4 has done that, finally<<

Source: http://kerneltrap.org/node/3736?PHPSESSID=a49c007a131b9d350553581d536d0711

Hmm, 11 years for a FS that does much less than what WinFS is supposed to do, kind of puts things in perspective. Mind you I still think WinFS will never actually ship, I just thought that was an interesting bit of trivia to add to the discussion :-)

Senkwe

# MSN Desktop Search@ Monday, December 13, 2004 11:39 AM

Today Microsoft released a beta version of its MSN Desktop search tool. There is video on Channel 9 about it (note that the video is nearly an hour long - I didn't watch it because I could download it quicker)....

TrackBack

# Microsoft Doesn't Understand (part 42)@ Monday, December 13, 2004 6:14 PM

A few days ago Frans Bouma asked if the (new?) WinFS delays were politics or incompetency, pointing to ReiserFS version 4 as an example of a fast, meta-data lovin' next generation file system. ReiserFS version 4 has been developed and...

TrackBack

# Microsoft Desktop Search@ Monday, December 13, 2004 9:05 PM

TrackBack

# A Microsoft Meme Too Funny Not to Point Too (thanks to Cringely)@ Tuesday, December 14, 2004 1:52 AM

Having written numerous blogs on the subject of Microsoft and its difficulties getting products out the door, and listened to related web chatter, i had to call out this dig from Infoworld's Robert X. Cringely column. Last week, Redmond Van...

TrackBack

# On Microsoft, Software-as-a-Service and Time-to-Market@ Tuesday, December 14, 2004 5:01 AM

My timing with this one is perhaps a bit off, given the news, but one of yesterday's posts from Joe Wilcox reminded me to comment on Scoble's entry here. What's more, my colleague's weighing in on the same theme by...

TrackBack

# re: Sometimes rants are funny :)@ Tuesday, December 14, 2004 8:39 AM

Thats funny man !! If I see another blog entry about MSN toolbar, I'm gonna puke !!!! I might have even tried the search, but why bundle it together and force me to use the toolbar that I don't like.

Sahil Malik

# re: WinFS delayed again: corporate politics or incompetency?@ Wednesday, December 15, 2004 4:00 PM

Winfs is much more than search, but with this delay....i start to think that winfs has the "second system" syndrom. What winfs wants to provide to apps can be done now - it's just much harder to do. IMHO, WinFS has become too complex. In that timeframe they could rewrite NT core, instead they're just creating a tool to solve a problem that maybe it's not so important.

Diego

# re: WinFS delayed again: corporate politics or incompetency?@ Thursday, December 16, 2004 5:29 AM

Frans,

I think there are a couple of issues at work here:
1) There is a lot of perfectionism creaping into the WinFS team, it is all or nothing. Why slip WinFS, surely a stripped down feature set would still be useful?
2) The business side of MS has probably quite rightly got the feeling the WinFS technical team is unlikely to ship anytime soon (see 1) and has started to focus on immediate threats like Google.

My reasoning goes like this: I suspect the MS WinFS team is working on a development model that is the exact opposite of XP development, they are trying to resolve every problem they can think of before they need to.

For example do you really need to support Multi Container cascading security updates? Surely this with this idea you introduce a whole heap of GUI paradigm problems, this is probably where they are having trouble, how do you present this stuff to the User?

The idea that things can appear in many places and more dangerously can be modified or (affected by other modifications) that are not immediately obvious is where a heap of problems come from.

I am convinced that they are making it more complicated than it needs to be because they have too many academic brains involved and not enough pragmatists. A pragmatist would question the need for some of this stuff, but it seems this isn't happening, and as a result the whole project slips, instead of release2, because it is very hard and they aren't prepared to compromise at all.

Of course this is all just a guess ;)

Alex James

# re: WinFS delayed again: corporate politics or incompetency?@ Thursday, December 16, 2004 5:39 AM

Alex, interesting :). Reading your reasining, I thought... perhaps they're not ABLE to compromise? (due to the fact that IF a compromise is made, the whole idea of having this great new FS is falling apart into an NTFS on steroids...).. time will tell I guess... Fact is that any developer I talked to about this simply can't understand what the fuss is all about with this new filesystem that supposes to solve it all. If technical people aren't convinced, who is?

Frans Bouma

# re: WinFS delayed again: corporate politics or incompetency?@ Thursday, December 16, 2004 6:13 AM

Frans,

I personally am convinced that WinFS, and even a highly compromised version could be beneficial. I spent 3 years and a lot of my own money attempting to create a relational file system, because I was convinced it could improve user productivity. However, about a year ago I 'GOT' WinFS and immediately recognized that our stuff was missing the schema stuff and while it was still a good idea technically, it was a huge problem to sell, because it is completely conceptual, you have to buy the concept to buy any of my ROI arguments. And as you know some of the smartest people in the IT industry can't agree about the concepts in this stuff, so how could I be expected to get a CIO to buy into my vision?

However I now have a very stripped down WinFS like server for schema objects, that is essentially an ORM (nowhere near as good as yours) with less of an ORM focus but more of a focus on File and Image handling and events in the server for managing metadata promotion and demotion.

I recently put a WebDav front end on this and this provides a very simple but still extremely powerful framework for capturing meta data about files and allowing that meta data to be leveraged by an ObjectPath like search mechanism. Especially with the Microsoft WebDav redirector now allowing WedDav drives to be used like network shares.

Imagine you have a Schema with:

Staff who have Departments and those Departments belong to Companies.

You upload a word document that was authored by "Frans" and sure using Google Desktop search type functionality I can find all documents written by Frans.

But can I find all documents written by people in the Sales department? Not with something like Google.

It is not written in the document anywhere so it can't be indexed.

But with the WinFS schema approach I just replace the string "Frans" with the Staff object and suddenly I have a gateway into the whole business schema. I have something that does this, it is nowhere near as complicated as WinFS etc, but it still offers some compelling benefits.

I am very excited by the possibilities this provides especially now MS seems to be backing away further and further from WinFS.

Would love to talk about this offline if you are interested. Alex at base4 dot net.

Alex James

# Why anyone argues with Frans is beyond me - he's just about always right.@ Thursday, December 16, 2004 5:34 PM

TrackBack

# re: WinFS delayed again: corporate politics or incompetency?@ Friday, December 17, 2004 3:03 AM

I don't think WinFS is "about search" more than it simply "enables search". It's MUCH easier to search a relational database than to search a file system. Why? Keyword: Relational. If the data is related in someway, ORGANIZATION (which trumps search in all forms) is what defines the system.

I have a theory and I probably should be slapped for this but I believe WinFS as it is is perfectly fine. I believe that they are simply having a very difficult time introducing it into the Windows code base and have it actually function properly. Much of Longhorn now still has many XP roots and I think Longhorn isn't that "new and improved" to easily just drop in WinFS and have it automagically work.

WinFS as a concept is probably already done but the incredible time consuming process is to make Windows itself work with it. Sure there WERE file system drivers you could just drop in but this is something completely different. Maybe they could have started with a file system driver and built on the existing technology but part of the equation could be that they decided to start from scratch and are realizing that Longhorn isn't quite the total sum of all parts it claimed to be when it was first conceptualized.

Microsoft sacrifices a LOT for backwards compatibility, lets not forget this. Sometimes I question that they sacrifice too much, but they've done a good job about keeping a happy medium. Backwards compatibility may be coming into play here though there's really nothing they could be worrying about with WinFS except maybe MSDE (which they proposed WinFS would do away with completely).

I'm probably completely wrong since I haven't kept up with any of this since I heard about the initial cuts. Also there was a ton of Longhorn talk in blogs around the WinHEC build release but things have severely died down since then so I don't really keep up with it any more. It doesn't mean I can't speculate and form conspiracy theories since I don't particularly work on that team.

Jeremy

# Browser wars, Darwinism, and the SlashDot effect.@ Tuesday, December 21, 2004 1:15 AM

Browser wars, Darwinism, and the SlashDot effect.

TrackBack

# Don't Misunderstand Darwin...@ Tuesday, December 21, 2004 3:58 AM

Don't Misunderstand Darwin...

TrackBack

# re: Darwin in full effect@ Tuesday, December 21, 2004 5:34 AM

As usual great points Frans. Defending IE right now is like the Netscape 4 folks trying to defend that POS. Why don't MS just accept that IE has exceeded it's life expectancy, it's little palm-crystal has turned red and it's time to fry that thing. Can anyone think of a single MS product that old which hasn't been radically overhauled (I don't count bug fixes - which I'm sure have replaced every part of IE over the years). .NET 2.0 / Longhorn would seem to be a great opportunity to destroy the most hated MS technology since clippy, wipe the slate clean and start again (and unless IE 6.5/7.0 which is in the current Longhorn builds is radically different under the skin they haven't)

Scott Galloway

# re: Darwin in full effect@ Tuesday, December 21, 2004 5:39 AM

There is no more to say ;)

Debian-lover

# re: Darwin in full effect@ Tuesday, December 21, 2004 5:43 AM

Most of Peters points were valid though and the FireFox devs I'm sure are listening and giving the post some thought at least. I don't think he was defending IE so much as implying that people shouldn't be lulled into a false sense of security by FireFox.

Senkwe

# re: Darwin in full effect@ Tuesday, December 21, 2004 5:58 AM

Hi Frans,
Don't you accept his points though? The changes he suggests are about improving the first experience of Firefox for *average* users.

Just because he works for Microsoft doesn't mean he can't make some important points.

Is it really that difficult to sign the code (an instantSSL code signing certificate is about $120)?

Is it really a problem to create a DNS entry to the FTP servers?

Remember it's not just the code that's important it's the whole delivery package.

What are your thoughts on the issues he raises? That is surely the important part...

Best regards
Steve

Steve Hurcombe

# re: Darwin in full effect@ Tuesday, December 21, 2004 6:47 AM

most of the points Peter made which are considered 'Good' relate to code signing. I don't have to mention that a lot of the spyware out there is signed, precisely to trick the IE browser to accept the active-x control.

Also, Firefox binaries ARE signed, (GPG) just not using Microsoft technology.

So, it's an issue you download the binary from a random mirror? Only if you make it one. So if it's NOT an issue, you go ahead (as the same people will also go ahead and accept popups that ask them to install a given active-x control or install an unsafe driver (which is not signed but comes with their <insert multinational here>-hardware.)) If it's not ok for you you have 3 options:
1) download the sourcecode and compile it yourself
2) download the binary and verify the GPG signature
3) download the binary and verify the MD5 hash with ANOTHER mirror or the official site.

What's forgotten is that MS downloads are on akamai servers in some of the cases (unix boxes), to have enough bandwidth. That's a 3rd party too. Why should I trust Akamai's sysadmins but I don't trust the sysadmins of my own ISP who mirrors firefox too? Why should I trust the file which is signed by a certificate issued by Microsoft themselves?

Besides that, what REALLY annoys me is that Peter mentions trust all over the place, but at the same time tries to make clear that it's GOOD to trust IE and Microsoft in this.

My example of the virus spread (which was a reality here in the Netherlands, thousands of people got the virus) was a good example that IE can't be trusted and THEREFORE the people who tell you otherwise can't be trusted either for their judgement if something is secure or not.

But, feel free to use IE, spread the word that IE is more secure and that you can trust IE more than you can trust Firefox. The one you limit is yourself (oh and the ones you can convince of course ;)) The longer MS stays in denial, the more ground Firefox will be able to conquer. The more ground it gets, the harder it will be for Microsoft to make it dissapear in the future. And this is a good thing. For too long Microsoft has simply ignored everything related to IE except teh most severe security flaws.

It's time they get serious about this and start doing something about it instead of reventing hot air and useless marketing rhetoric.

Frans Bouma

# re: Darwin in full effect@ Tuesday, December 21, 2004 8:29 AM

@Senkwe:
True. Maybe FireFox developpers are listening. But at least they listen and improve their product. How long did it take for Microsoft to come up with a pop-up blocker. Before the firefox-threat it stopped developping IE at all! And now they are talking about implementing a lot of standard FireFox features.

I LOVE the mozilla products. I am using FireFox since 0.4, Thunderbird from 0.2 and Sunbird form alpha.

Good post Frans.

Arno (Scharnout)

# re: Darwin in full effect@ Tuesday, December 21, 2004 9:53 AM

"However, on the other hand, Peter Torr works for Microsoft and apparently Microsoft's Marketing department isn't able to tell the customers what's best for them so other employees are rallied up in arms to get the word out."

Well, considering that all people have their own opinion and it is usually not formed based on whether or not their company is marketing appropriately. I'd say your assumption above is wrong. It is pretty presumptious of you to assume that Microsoft employees are up in arms to defend IE or defeat Firefox based on a single blog entry of one Microsoft employee. Get some perspective Frans.

Alex Lowe

# re: Darwin in full effect@ Tuesday, December 21, 2004 11:09 AM

Hi Frans,
To clarify the code signing a little...it doesn't matter in practice if IE can be trusted or not, or even whose signing technology it is, or how good it is, the issue is that if a download is not signed the browser implies (indeed it warns you) that the download may not be trustworthy.

Ill-named download links can only add to a user's anxiety.

It's all about reducing drop-out...at every click you risk losing another customer before they even get to install the application.

Best regards
Steve

Steve Hurcombe

# re: Darwin in full effect@ Tuesday, December 21, 2004 12:11 PM

Frans, or Otis :),

Aren't you doing the same thing as Peter Torr with this post ? Although your text is different, clearly you think Firefox is the way to go and IE is not. Although I absolutely agree with you, and myself use Firefox aswell, all those people "defending" Firefox seems rather sad aswell.

It kind of reminds me of those old "Amiga vs. PC" wars :)

/Rene

Rene van der Steen

# re: Darwin in full effect@ Tuesday, December 21, 2004 12:52 PM

Frans, you missed the signing point. It wasn't about who's technology. It wasn't about the *possibility* to verify. It was that for a general user, it's not *easy* to see who the publisher of the software is. IE/Windows make it easy, regardless of the actual technology uses. Firefox does not. It's as simple as that.

Michael Giagnocavo

# re: Darwin in full effect@ Tuesday, December 21, 2004 1:00 PM

Signing activeX objects is bogus. A lot of the spyware controls installed silently into IE are signed, to avoid having a pop up that warns the user. Everyone with a certificate (a couple of hunderd $$) can sign his malware and it looks trustable code. That's not the case. Signing code only makes sure the code installed/run is written by the creator of the executable as you can see that on the signature.

I can check my firefox install as well if I want to.

So I have 2 different check mechanisms, both work. However in IE the signed malware and spyware is not causing warnings as runnign signed activex objects is enabled by default. In Firefox I don't have that problem, as activeX stuff isn't ran anyway and plugins/extensions are easily disabled. How many people know how to remove an IE object? (Tools -> Internet Options -> temporary Internet Files -> View objects -> remove the object you don't need/want)

Not a lot, I can tell you.

Frans Bouma

# re: Yes! EU Software patent directive stalled!@ Wednesday, December 22, 2004 1:32 AM

And because the Dutch are always "haantje de voorste" and "beste kindje van de klas" when it concerns throwing away money and bad ideas.

Dennis v/d Stelt

# re: Darwin in full effect@ Wednesday, December 22, 2004 12:00 PM

IE in XP SP2 contains enhancements to control plugins and extensions too (Tools, Manage Add-ons). And settings are now set to a much more secure default level. Arguments about Pop-up blocking etc don't hold anymore as well. And what about Windows authentication on an intranet, can't live without it to have better security using plain HTTP (no clear text password sent over the wire and single-sign on experience on the LAN)? What about deployment, centralized configuration, updating the software inside a company (e.g. no ADM files for GPOs, non-MSI installer)?

Bart

# re: WinFS delayed again: corporate politics or incompetency?@ Wednesday, December 22, 2004 12:17 PM

A few comments:
- WinFS is about searching, but also about much more. Fast searching on the local pc will be possible without WinFS, look at http://beta.toolbar.msn.com; WinFS wants to give a much better story on the field of linking metadata and maintaining schemas for structured data that can be consumed by a bunch of applications in a unified and uniform way.
- Don't forget WinFS is a layer on top of the physical filesystem, being NTFS. So, in the core, NTFS is doing the physical storage work whileas WinFS provides the logical services.
- The idea of having a database engine on every desk is a huge one and needs to be 'correct' from day one on, otherwise we fall back in compatibility problems later on. On the server level this impact is even bigger, think of porting services to get to use this technology to store and link data (e.g. AD, Exchange, etc). The first step to take over there is to move to a unified storage model first (or as a crucial part in moving to such a model).
- SQL Server is the core engine behind WinFS and it's better to finalize SQL Server 2005 first, offering all the great benefits over there, so that the new core can be used further on.
- Without the story server-side, the client-side would have a low impact (cf. searching and maintaining docs on an intranet).
- Avalon and Indigo will be in Longhorn and these two offer a great new application development model that will enable us to build better, cooler, richer applications faster with a better user experience (cf. browsable applications with XAML etc). Avalon and Indigo will be delivered for W2K3 and XP as well (cf. Avalon CTP November 2004) to support developers.
- Don't forget about the work at the core of the Longhorn OS: driver isolation, WinFS, new user experience, MSH shell (aka Monad), etc which are all great and non-trivial improvements.

Bart

# re: Yes! EU Software patent directive stalled!@ Thursday, December 23, 2004 4:06 AM

And it even takes a German expert in European Law to set the record straight on Brinkhorst's explanation "that he is not allowed to change his vote". This man lied to the government, lied to Parliament, and lied to us, the people. But does that have consequences? Of course not. Compassionate, Involved and Reliable? Yeah right! Jan-Peter, go home.

Wolfgang

# re: Yes! EU Software patent directive stalled!@ Thursday, December 23, 2004 4:12 AM

Exactly!

Too bad no-one cares about software patents ("What are they?") in the netherlands, besides software developers, so the public is not informed about this crap. :/

Frans Bouma

# re: Yes! EU Software patent directive stalled!@ Friday, December 24, 2004 5:06 AM

You can sign a thank you letter to the Polish minister at: http://thankpoland.info/

Vincent Snijders

# re: Merry Christmas & Happy New Year!@ Friday, December 24, 2004 10:11 AM

I wish you a merry christmas too Frans. Have fun in you holiday :-)

Glimi

# re: Merry Christmas & Happy New Year!@ Saturday, December 25, 2004 12:39 PM

Merry Christmas Frans!

Jeroen van den Bos

# WinFS delay discussion@ Tuesday, December 28, 2004 9:27 AM

TrackBack

# WinFS delay discussion@ Tuesday, December 28, 2004 9:28 AM

TrackBack

# re: Merry Christmas & Happy New Year!@ Tuesday, December 28, 2004 11:13 PM

300M? You lucky SOB - that's a beautiful view.

Bill

# re: Merry Christmas & Happy New Year!@ Wednesday, December 29, 2004 7:54 AM

Can I come for a vist...looks awesome!

Greg Robinson

# re: More interesting stuff on Interfaces..@ Wednesday, December 29, 2004 9:06 AM

TrackBack

# re: VS.NET 2003 C# code-editor tip of the day@ Thursday, December 30, 2004 6:33 AM

I also show the numbers as red..

What kind of colorschema does resharper use? something we can do without resharper?

Thanks
Marco

Marco

# re: Merry Christmas & Happy New Year!@ Thursday, December 30, 2004 11:15 AM

hoppy holidays to you!

Need to pack up my stunt kites (2 & 4 line) and come visit. Beautiful!

Best,
/jhd

Dhominator

# re: VS.NET 2003 C# code-editor tip of the day@ Thursday, December 30, 2004 11:57 AM

Yeah if you code in c# and aren't using ReSharper... I pity you ;) Color scheme is nice... but I just looked and you can't change it in their UI. Don't know how it maps to VS colors. Will post that question to jetbrains.

Dhominator

# re: Darwin in full effect@ Thursday, December 30, 2004 6:20 PM

Frans, again, I think you are purposefully overlooking the signing issues. No one mentioned signing ActiveX. I'm referring to ANY download. Signing allows you to verify the publisher, plain and simple. Thus, I can download an EXE and verify it's signed by MS Corp, since IE will tell me. FireFox does not. ActiveX happens to do the same: It'll tell me who the publisher is.

Michael Giagnocavo

# re: Darwin in full effect@ Friday, December 31, 2004 3:34 AM

Michael: I'm not talking about MS' activex objects, I'm talking about spyware brought to you in ActiveX objects, signed. Nothing is stopping these objects, and they are for real.

Frans Bouma

# re: Folle lok en seine!@ Friday, December 31, 2004 6:42 PM

Gelukkig nieuwjaar! ;)

David Cumps

# re: Folle lok en seine!@ Friday, December 31, 2004 10:35 PM

ਨਵਾੰ ਸਾਲ ਖੁਸ਼ਿਯਾੰਵਾਲਾ ਹੋਵੇ, नव वर्ष मंगलमय हो, Naya Saal Mubarak Ho, Nouvelle année heureuse, Glückliches neues Jahr, Happy New Year !!

Sahil Malik

# re: Folle lok en seine!@ Saturday, January 01, 2005 5:26 AM

Nou begrijp ik 'm ook! ;)

Beste wensen!

Dennis v/d Stelt

# re: Folle lok en seine!@ Saturday, January 01, 2005 2:04 PM

Καλη Χρονια
Kali Hronia
Happy New Year

Daniel Moth

# re: Merry Christmas & Happy New Year!@ Sunday, January 02, 2005 11:27 PM

<green>not jealous.. not jealous</green>

Sahil Malik

# LLBLGen Pro Template Studio - Free IDE for Creating Editing Testing Templates for LLBLGen Pro@ Monday, January 03, 2005 6:44 AM

TrackBack

# re: Template Studio for LLBLGen Pro released!@ Monday, January 03, 2005 12:36 PM

Looks awesome Frans. Looks like a lot of work went into creating the Template Studio.

If you don't mind my asking, how did you get intellisense to work? Is that homegrown or did you buy a third party control?

Sahil Malik

# re: Template Studio for LLBLGen Pro released!@ Monday, January 03, 2005 12:55 PM

Sahil: I used ActiproSoftware's SyntaxEditor which has a powerfull language parser and features to enable intellisense as long as you supply the types. Traversing types was a bit difficult and it doesn't work on locally declared types (as that would require per-line C# compilation of the complete file which is kind of slow and has a lot of scope issues as well) but in the end it turned out ok, as the project object graph can now be traversed in intellisense. I simply hop each traversed property/method and check the returned type using reflection and go from there with the next fragment in teh complete x.y.z.foo().. declaration :)

Frans Bouma

# re: Template Studio for LLBLGen Pro released!@ Monday, January 03, 2005 2:41 PM

Thanks Frans.

Sahil Malik

# re: Template Studio for LLBLGen Pro released!@ Monday, January 03, 2005 3:33 PM

Congrats Frans, we (me, but I am sure Wilco won't be able to resist) will take a look at it at Variomatic.

Olle de Zwart

# re: Template Studio for LLBLGen Pro released!@ Monday, January 03, 2005 5:38 PM

Whoa Frans, that looks really slick! How is it like working with the Janus controls compared to the Infragistics ones?

Martijn Boland

# Some links for the tech geeks among us....@ Monday, January 03, 2005 9:39 PM

&nbsp;A debate on SQL and the value of stored procedures.... Don't use stored procedures yet- Must be suffering from NIHS...

TrackBack

# Some links for the tech geeks among us....@ Monday, January 03, 2005 9:39 PM

&nbsp;A debate on SQL and the value of stored procedures.... Don't use stored procedures yet- Must be suffering from NIHS...

TrackBack

# re: Folle lok en seine!@ Tuesday, January 04, 2005 1:06 AM

Gelukkige nuwe jaar!
Feliz ano novo!

Ernst Kuschke (C# MVP)

# re: Folle lok en seine!@ Tuesday, January 04, 2005 6:05 AM

Veel zegen. (Greans)
Peter

Peter van Ooijen

# New customizable version of BlogThisUsingPostXINGPlugin available@ Tuesday, January 04, 2005 11:46 AM

TrackBack

# New customizable version of BlogThisUsingPostXINGPlugin available@ Tuesday, January 04, 2005 11:46 AM

TrackBack

# re: Template Studio for LLBLGen Pro released!@ Tuesday, January 04, 2005 11:54 AM

Martijn: well, if you've used Janus' controls, you don't want to work with infragistics' controls. I think that sums it up :)

Thanks Olle! :)

Frans Bouma

# re: Template Studio for LLBLGen Pro released!@ Tuesday, January 04, 2005 4:11 PM

Congrats Frans! Still haven't convinced the new employer to purchase LLBLGen yet, but hopefully soon.

Chris Bower

# Stored Procedures Are Bad!@ Wednesday, January 05, 2005 6:21 AM

Stored Procedures Are Bad!

TrackBack

# RE: SOA is overrated...@ Wednesday, January 05, 2005 11:47 PM

TrackBack

# This @ Thursday, January 06, 2005 3:40 AM

This

TrackBack

# Yet Another SOA Acronym (YASA)@ Thursday, January 06, 2005 6:51 AM

Yet Another SOA Acronym (YASA)

TrackBack

# re: This SOA hype is getting out of hand@ Thursday, January 06, 2005 7:36 AM

I myself have not been paying attention to the SOA hype, so I can't comment on it.

But there is a very real difference between "web-services" and "services using TCP/IP", and I'm sure you realize this, but in a fit of rage, forgot ;) The former is actually a subset (or should we say another implementation?) of the latter.

As for SOA being marketing hype, well, you could've said the same thing about .Net before it was released:

"Let me be blunt here: this whole .Net hype is pure marketing-poop. I mean: every developer on the planet knows that if you have several different classes in your application (ui objects, business objects, perhaps even a data transfer object), class E inherits class F and F is the parent of class E. That's as old as what, object oriented programming?"

Okay, I dunno how well that works, but I think you get my point. Rarely are there really any true breakthroughs in a field. You could argue that Honda is going overboard, hyping up their SH-AWD on their new Acura RL, but if you study the underlying technology, you realize that there are minute differences between their SH-AWD system and current AWD systems on the market that offers tangible benefits.

Just my thoughts....

Charles Chen

# Rocky Lhotka: Did no one detect the sarcasm?@ Thursday, January 06, 2005 7:39 AM

see the link for explanation

n/a

# re: This SOA hype is getting out of hand@ Thursday, January 06, 2005 7:46 AM

"But there is a very real difference between "web-services" and "services using TCP/IP", and I'm sure you realize this, but in a fit of rage, forgot ;) The former is actually a subset (or should we say another implementation?) of the latter."
Yes I know, but it's still vague, because a lot of people run into problems: they want to / need to use remoting but use webservices techniques build into vs.net and wonder why it's not the same.

As for .net being a hype too: fully agreed, IF you listened to the marketing machine which sticked .NET to every byte coming out of redmond (and later retracted that, thankfully).

However I see soa as a complete re-hash of an old idea and being presented as something completely new. That's an old marketing trick and we don't need that, IMHO.

Frans Bouma

# re: This SOA hype is getting out of hand@ Thursday, January 06, 2005 8:43 AM

Amen, brother! I can't take a step around here without three managers asking, "does it fit our new SOA direction?"

BigJim

# re: This SOA hype is getting out of hand@ Thursday, January 06, 2005 9:14 AM

I would say that "hype getting out of hand" is an oxymoron.

:D

The ".Net" brand was very bad publicity for the .Net framework. Many things were branded .Net Ent Servers without even offering PIAs

AndrewSeven

# re: This SOA hype is getting out of hand@ Thursday, January 06, 2005 9:57 AM

Hey Frans, thanks for reading the blog. Yeah, I had to do a bit of deep breathing exercises myself when I was reading the mentioned InfoWorld article.

I commented a little further here:
http://dotnetjunkies.com/WebLog/sstewart/archive/2005/01/05/41754.aspx#41971

Scott Stewart

# re: This SOA hype is getting out of hand@ Thursday, January 06, 2005 12:07 PM

I do agree that "hype" is often a marketing ploy, but also think that it reflects a few realities of the developer community.

1. People are stupid and lazy (or nicely stated as irrational and energy conserving). This isn't as harsh as it seems. Marketing and politics can't exist to the degree they do without a society of S/L agents.

2. Developers must deal with social realities. One of those realities is the phenomenon of "fashion". What purpose does fashion serve? Currently I'm of the opinion that it serves to help identify social engagement. The developers most engaged with the developer community will be proficient in the language and norms of the current community.

It took me some years to understand these two realities. Now that I've recognized them, I've been better able to tolerate much of the crap.

Not understanding these realities results in constant, head banging against brick walls, frustration. It can also impede your career since most of the corporate world is full of S/L executives (a.k.a. decision makers, clients, and bosses).

So what's the rational developer to do? At the very least, simply to stay tuned to reality (social and otherwise). After that it's a matter of taste. Frustration is a powerful tool to help change things and contentment is dangerous, but a life on this edge is tiresome and exhausting and potentially detrimental to your health.

Most seem to take the conventional path of tolerating everything. One of the reasons I enjoy Frans's discussions so much is that he doesn't. His clarity of perception, analysis, and judgement are a refreshing anti-conventional voice. He's a boat rocker.

Keep it up Frans!

George Hicks

# re: This SOA hype is getting out of hand@ Thursday, January 06, 2005 3:44 PM

Thanks for yet another great piece of blogging. I couldn't agree more - here's another allergy to develop: I immediately want to leave the room if someone uses the S..-word.

By the way: I remember Rasmus Lerdorf calling "web services" a "firewall penetration protocol": Paranoid network administrators have blocked all IP ports but port 80/tcp. With practically one IP port left to communicate on, new protocols have to be written to differentiate what's happening :-)
Innovation? - No: Circumvention...

Troels Arvin

# re: This SOA hype is getting out of hand@ Thursday, January 06, 2005 3:57 PM

Thanks all for the kind words :)
George: good points! Thanks for sharing these :)

Troels: also a great point about that port 80. :)

Frans Bouma

# re: Yes! EU Software patent directive stalled!@ Thursday, January 06, 2005 4:21 PM

I think the public would start caring if they are told that patents are being handed out on information entities and companies are being given divine rights to monopolise mathematics and logic. Today it's programs, but tomorrow? This debate is really about what achievements should be considered to be ownable in the same way as a packet of crisps. The lobby argue that information is just like any other "field of technology" that should yield them broad exclusion rights for every "new" and "useful" improvement in programming, of course this overlooks the issue of information having properties that are unique such as low cost reproducability, mass participation and of course freedom of expression etc. etc.

Christian Beauprez

# re: This SOA hype is getting out of hand@ Thursday, January 06, 2005 4:48 PM

Confirmation from Rocky Lhotka that his article was tounge-in-cheek: http://www.lhotka.net/WeBlog/PermaLink.aspx?guid=333d2cce-8dfc-4f49-9065-8d75451fb90b

Unfortunately, lots of people took him seriously. But, if you read the rest of his blog, its very clear that his views on web services are similar to yours Frans.

John Rusk

# re: This SOA hype is getting out of hand@ Friday, January 07, 2005 3:51 AM

A few remarks:
First, "SOA" as in the Dutch acronym translates to STD (sexually transmittable decease), and second, for some reason the text of this blog entry looks all garbled (in IE, FireFox has no problems). Every line with bold characters in it interferes with the next.

So much for the "maybe you'd like to know" bits.

As to SOA in the DB: why not? If you read the documentation for SQL Server 2005, we see integration with the .NET framework, user defined functions, types and extended sprocs all running in the .NET framework. SQL Server 2005 is going beyond its classic task of "managing your data" and is more and more taking over responsibilities and tasks of the classical application server. Add a simple HTTP deamon and SOAP parser and we've got ourselves a host for simple, data oriented Web Services. Now why, if we want to go the Web Services way, would we want to have to build an extra layer for this? Sure, 2-tier is old and we shouldn't get anywhere near it, but in all practicality, everything Web-oriented is still pretty much 2-tier, isn't it? And since for some reason those in management now believe that if something doesn't "run in the browser" it won't sell, what are we to do? Re-educating them will take years....

I agree SOA is being thrown around too much, but I see no harm in DBMSes exanding beyond their classic tasks and responsibilities (as long as the new functionality does not interfere with this, of course).

Now, if we look at new developments such as Indigo and Fabriq, wouldn't the next logical step be to assume that SOA/Web Services will disappear into the background as "just another way to distribute logic and data"? We have been doing that for ages, but we still have to get a universal, ubiquitous, reliable distributed application environment. CORBA was not the answer, DCOM wasn't, SOA won't be: Indigo/Fabriq is our next horse to bet on.

Wolfgang Al

# re: This SOA hype is getting out of hand@ Friday, January 07, 2005 3:59 AM

Wolfgang: I did mention that dutch SOA acronym :). The text indeed looks odd in IE (I use firefox so I didn't notice) Must be the superscript tags...

As for RDBMS's being stand alone entities: would you hook up your 1TB mission critical database server to the internet? Me neither.

Frans Bouma

# Paul Wilson's O/R Mapper V3.1 Released@ Friday, January 07, 2005 6:03 PM

TrackBack

# You don't get it@ Saturday, January 08, 2005 2:18 PM

Here's why SOA is a big deal.
1) Interoperability: Why does an application that needs a data persistence service need to hardwire with a vendor/language-specific API unless of course performance requirements demand it?
2) Ability to take advantage of common infrastructure: Read about SOAP 1.2 message paths and you will realize that application level inter-networking is now a reality. The network can provide value-added services transparently to all inter-application messaging. This wouldn't have been possible hadn't there been standardization around messaging protocols.

Dig deeper.

cheers
prasad

prasad chodavarapu

# re: This SOA hype is getting out of hand@ Sunday, January 09, 2005 6:54 AM

"1) Interoperability: Why does an application that needs a data persistence service need to hardwire with a vendor/language-specific API unless of course performance requirements demand it? "
How would you formulate a request to a data persistence service to deliver all customers in France with orders in May 2004 ? That's right, by using the persistence core filtering logic, often the code offered by the used O/R mapper/persistence layer. (oh, you would write your own? ha! ). As there is NO standard for this, you've hardwired your layers.

"2) Ability to take advantage of common infrastructure: Read about SOAP 1.2 message paths and you will realize that application level inter-networking is now a reality. The network can provide value-added services transparently to all inter-application messaging. This wouldn't have been possible hadn't there been standardization around messaging protocols. "
Oh what a load of crap. Before you can write the client's logic which utilizes the service's offered functionality, you have to study the service's provided interface. How you deliver your action request to that service is not important: be it an RPC call, a soap enveloppe, custom messaging etc.. The process of including a DCOM component in a distributed COM+ package on the network in your client is not different.

Frans Bouma

# Spot the difference@ Tuesday, January 11, 2005 10:45 PM

TrackBack

# Spot the difference@ Tuesday, January 11, 2005 10:46 PM

TrackBack

# Nant-scripts as developer therapy@ Sunday, January 16, 2005 8:39 PM

TrackBack

# When Stored Procedures Go Bad@ Wednesday, January 19, 2005 5:16 PM

When Stored Procedures Go Bad

TrackBack

# re: This SOA hype is getting out of hand@ Wednesday, January 19, 2005 8:14 PM

Frans,

Bottomline: All of us agree that these hundreds and thousands of acronyms/concepts we have for computing techniques and technologies all boil down and refer to "data - logic(process) - channel". All of this jargon is either new names for these fundamental pieces or ways to link them or to store/run/implement them.. You get the picture! And the basic premises wont change much even when, say, quantum computing becomes a reality. :-)

Having said that, I definitely cant stop myself from at least snickering (if not being enraged like you are) at all these peddlars selling old wine in new bottle and sometimes even the bottle is not new.. just the label! :-)

And having seen firsthand how some of these things start, I know that in most cases "good" technicians who just think aloud in some meeting are the innocent instigators for these marketing hypes/avalanches by peddlars! :-)

Hope you will have more luck fighting these wars that some of us did/do! :-)

Keep up the good work.

Kiran Raja

# Stored Procedures@ Wednesday, January 19, 2005 8:54 PM

Stored Procedures

TrackBack

# re: This SOA hype is getting out of hand@ Thursday, January 20, 2005 5:56 AM

Frans- you're a total bad a33. Amen brother. If i ever disagree with you - I need to have an email generated to warn my of my stupidity- You rock.

Bill

# re: This SOA hype is getting out of hand@ Thursday, January 20, 2005 10:12 AM

Sure, we wouldn't hook up 1TB mission critical databases to the Internet, but how many databases are offering very simple stuff? Forums, product information, entire sites, the list goes on. Why o why would we want to have extra layers in between? Look at ASP.NET v2.0. Yes, it has an ObjectDataSource. But it works so well that if you use anything other than a specialization of a DataTable/DataSet, you're screwed. If you have a Business Framework that actually has some intelligence in it, start writing you're own databinding providers.

Let me emphasize again that I fully agree that critical databases shouldn't be hooked up to the Internet directly, but all that stuff that's doing little more than serving up data? Please, don't bother me with more layers and/or tiers than I want to administer. Just give me an HTTP daemon in the DB. Thank you.

Wolfgang

# re: WTF! .NET 1.1 SP1 gives butt-ugly Groupbox captions!@ Thursday, January 20, 2005 3:55 PM

Frans, did you recompile your app against the .NET 1.1 SP1 version? Do you have SP1 installed on the server as well as on the client? Note that there are 2 versions available of SP1: one for XP, etc. and another for Windows Server 2003. I'm interested in the answers because we're planning to upgrade our production environment ...
David

David Boschmans

# Repro case of nasty .NET 1.1 SP1 bug in groupbox control, Microsoft please read@ Thursday, January 20, 2005 11:50 PM

TrackBack

# re: WTF! .NET 1.1 SP1 gives butt-ugly Groupbox captions!@ Thursday, January 20, 2005 11:54 PM

TrackBack

# re: WTF! .NET 1.1 SP1 gives butt-ugly Groupbox captions!@ Friday, January 21, 2005 2:37 AM

We had the same problem. Our resolution? Don't install SP1. :-|

I dealt personally with PSS in South Africa who told me that there was no known fix for the issue - in fact they did not seem to even be aware of it all (this was a few months ago). Unfortunatly for some reason i could not repro the bug in a small solution, and obviously i couldn't send them any of our production code, so the only resolution was to not install the service pack at all.

If you do get hold of a hotfix or patch, or can even repro the bug in a simple project, please please please send it to me at kevint@gmail.com

KevinT

# re: WTF! .NET 1.1 SP1 gives butt-ugly Groupbox captions!@ Friday, January 21, 2005 5:14 AM

I "fixed" this by setting the FlatStyle of all nested GroupBoxes to Standard.
This is a really ugly bug.

ru

# re: WTF! .NET 1.1 SP1 gives butt-ugly Groupbox captions!@ Friday, January 21, 2005 5:54 AM

I've compiled a reprocase, I blogged about this here: http://weblogs.asp.net/fbouma/archive/2005/01/21/358006.aspx

I've tried everything, no luck. the only 'solution' is docking the groupbox in a panel and use the panel to position/size the groupbox. Pretty lame.

Frans Bouma

# I need a recommendation for source control@ Friday, January 21, 2005 6:36 AM

TrackBack

# re: Repro case of nasty .NET 1.1 SP1 bug in groupbox control, Microsoft please read@ Friday, January 21, 2005 6:41 AM

The XP theme support in WinForms is terrible. GroupBox has some issues as you are discovering and the tab control fails to give a proper gradiented background. The *UpDown controls fail to theme at all.

Strangely enough Borland's attempt at providing a set of wrappers around the Win32 widgets (VCL.Net) works just perfectly in both these scenario's but is only available for use in Delphi.Net applications.

One workaround is to try SkyBound's free <a href="http://www.skybound.ca/developer/visualstyles/">VisualStyles </a>which requires you just drop a control on each form you need. It fixes many many of the issues including your test project.

[)amien

Damien Guard

# re: Repro case of nasty .NET 1.1 SP1 bug in groupbox control, Microsoft please read@ Friday, January 21, 2005 7:12 AM

Just tested it in .NET v2.0 Beta1, still there. By the way, it must've something to do with the FlatStyle=FlatStyles.System setting. Change this, and it renders OK.
What an ugly bug indeed. I'd really like to know what causes this one :)

Wolfgang

# re: Repro case of nasty .NET 1.1 SP1 bug in groupbox control, Microsoft please read@ Friday, January 21, 2005 7:17 AM

Wolfgang: the Flatstyles.System is required otherwise you won't get themed groupbox controls on a themed XP. The stupid thing is: it did work in .NET 1.0 and .NET 1.1, but it's broken since SP1. Thanks for testing this on .NET 2.0 beta, so I can file a bug for them in the bug db. (or you can do that of course ;))

Frans Bouma

# re: Repro case of nasty .NET 1.1 SP1 bug in groupbox control, Microsoft please read@ Friday, January 21, 2005 8:58 AM

Wolfgang: it was already reported for .NET 2.0: see this bug:
http://lab.msdn.microsoft.com/productfeedback/viewfeedback.aspx?feedbackid=31fe5781-fa8f-410d-8177-7977311094b6

it is fixed for the next build.

I've tried to report this bug to microsoft through the online support channels, but I'm not entitled to do so, as I don't have free support rights (?). I'll try via my MVP lead as I'm pretty pissed off by this crap Microsoft is pouring over me, especially when I want to report it.

Frans Bouma

# re: Repro case of nasty .NET 1.1 SP1 bug in groupbox control, Microsoft please read@ Friday, January 21, 2005 1:17 PM

MVP's in Oz get free Premier support.

I did not say this. I was not here.

Anon

# re: Repro case of nasty .NET 1.1 SP1 bug in groupbox control, Microsoft please read@ Friday, January 21, 2005 5:42 PM

Have you posted this in the product feedback center BTW? (http://lab.msdn.microsoft.com/productfeedback/)

If you have, I'll add my two cents. This will certainly be effecting me too.

Scott Willeke

# re: Repro case of nasty .NET 1.1 SP1 bug in groupbox control, Microsoft please read@ Saturday, January 22, 2005 3:04 AM

Scott, there was already a bugreport of this, for .net 2.0 beta, and it was fixed dec. 10. See my comment in this thread. I'll try to contact the C#/.NET MVP lead to get this fixed pronto.

Frans Bouma

# re: Repro case of nasty .NET 1.1 SP1 bug in groupbox control, Microsoft please read@ Monday, January 24, 2005 9:11 AM

Workaround 2:
http://www.developerspot.net/archive/2005/01/07/221.aspx

This workaround sounds promissing, it can be done in a global search/replace action. Still a hack though. MS should fix this in the code itself.

Frans Bouma

# re: Repro case of nasty .NET 1.1 SP1 bug in groupbox control, Microsoft please read@ Tuesday, January 25, 2005 8:09 AM

Join the crowd, we have identified a combobox bug that's caused some problems for us

Greg Robinson

# re: This SOA hype is getting out of hand@ Tuesday, January 25, 2005 3:37 PM

Frans,

With all due respect, I think you're missing an important point here.

When you state that SOA is just repackaging, you use the example:

"How was that done a couple years ago? That's right, calling into the service
which was offered by the RDBMS through its API!"

What you failed to mention is a series of *VERY* important points:

- That API is heavily proprietary. Think OCI, think TDI, binary protocol stuff
- That API probably forces you to use a specific language/framework to access it (usually C)
- If you want to call that API, it returns proprietary data formats, unique
types of outputs, etc. There is no standard for the type of information you should
expect to receive from that API. If you wanted to write a common database layer
for your application, you have to have two distinct code sets for each type of
RDMBS you expect to support.

SOA and Web Services can make better or remove entirely all of those restrictions. And therein lies the beauty.

If you can show me how OCI can be easily called, in a uniform manner, from almost any language and framework without downloading any additional add-ons from Oracle or the framework provider, then I might be persuaded.

But if Oracle and MSSQL start supporting direct SOAP access and return some standard XML dataset-schema data, then I can't see how you can say that it's just marketing fluff and serves no purpose and you'd rather use OCI or TDI.

Chad Myers

# Language Oriented Programming.@ Tuesday, January 25, 2005 9:00 PM

TrackBack

# FIX: Nested groupbox controls on .NET 1.1 SP1 have corrupted caption text@ Friday, January 28, 2005 12:57 AM

TrackBack

# re: FIX: Nested groupbox controls on .NET 1.1 SP1 have corrupted caption text@ Friday, January 28, 2005 8:39 AM

Nice, but why is this a call-for-patch fix?


quote ---

I'll try to contact PSS later today to get a fix for this AND to get this fixed publicly, because a private PSS-call-us-fix is useless, as users of applications by ISV's first have to call PSS to grab the special fix, which most of them won't do.

--- quote

-- Michael

Michael Ruck

# re: FIX: Nested groupbox controls on .NET 1.1 SP1 have corrupted caption text@ Friday, January 28, 2005 8:46 AM

I tried to get this made a public fix but they didn't want to do that... :/ So there is nothing more to do than OR trying to get a lot of people asking for a public fix OR simply accept this is the case. Believe me I tried but if they don't want to make this a public patch, there is little we can do unfortunately... It's in the next SP but when that will be released is unknown, perhaps never.

I don't agree with this policy, but it's not something I control...

Frans Bouma

# re: FIX: Nested groupbox controls on .NET 1.1 SP1 have corrupted caption text@ Friday, January 28, 2005 11:02 AM

Overheard as an anonymous comment at Microsoft --

"Guys we need to fix it, because it is incredibly hard to argue with Frans Bouma."

Sahil Malik

# re: FIX: Nested groupbox controls on .NET 1.1 SP1 have corrupted caption text@ Friday, January 28, 2005 11:05 AM

haha :)

But! To my defense (hehe) I lost the argument for a public fix... :P

I have so much to learn...

Frans Bouma

# re: FIX: Nested groupbox controls on .NET 1.1 SP1 have corrupted caption text@ Monday, January 31, 2005 6:32 AM

Magik. Thanks Mr Bouma - you retain your "The Man" title!

I have never understood the logic of making your customers jump through hoops to get fixes on your own f-ups. I know one thing: We would never get away with that if we did it to *our* customers...

KevinT

# re: FIX: Nested groupbox controls on .NET 1.1 SP1 have corrupted caption text@ Tuesday, February 01, 2005 2:33 AM

This is all very disappointing to see.

If the long-awaited service pack is breaking apps, then what's the point?

Seems that the XP themes causes more issues than it's worth. Like the gridlines issue in listviews.

Not really sure what to look forward to now. .NET 1.1 SP1 looks dodgy and Whidbey is a long way away.

Simon Stewart

# re: WTF! .NET 1.1 SP1 gives butt-ugly Groupbox captions!@ Thursday, February 03, 2005 9:22 PM

I've got this problem,too...
thank you for your advice,anyway.

KRISS

# Microsoft Desktop Search@ Monday, February 14, 2005 10:11 PM

TrackBack

# re: Regex fun@ Saturday, February 19, 2005 3:32 PM

Elegant code Frans, no surprises there though...

Alex James

# re: Regex fun@ Saturday, February 19, 2005 4:07 PM

I've used "Regex fun" as a blog title before, but I meant it in jest. Not surprisingly, you were serious! :)

Jeff

# re: Regex fun@ Sunday, February 20, 2005 12:34 AM

Do you plan to use partial classes in your code generator when whidbey comes out? They would remove the need to have special sections like you have implemented above.

ben

# re: Regex fun@ Sunday, February 20, 2005 7:39 AM

Some comments on this. Right when I read your regex, I was wondering about greedy matches. I don't know LLBLGen, so I can't say if that's important to you, but a quick test showed me that your regex doesn't work correctly if there's more than one such region in the same file (while with that loop and everything, it certainly looks like you were trying to support that).

The problem in that case is the so-called greedy match, which regular expressions always perform by default. This means that the quantifiers * and + always try to match as much text (i.e. they are greedy) as possible in the context. In your case, the result is that you get only one match which stretches from the first start marker to the last end marker.

This can be changed easily by switching the greedy match off for the correct quantifier, that's the one that matches all the "content" lines in your regex. So instead of (.*\r\n)* you should use (.*\r\n)*? , the greedy matching being switched off by the trailing ?.

Two other things I'd change:

1) The comment operators could be better matched using ('+|/{2,}) instead of the ['/]+

2) For compatibility (with Mono, for instance), you shouldn't assume \r\n to be the line terminator, instead use Environment.NewLine. So you could construct your complete regex like this:

string regex = String.Format(CultureInfo.InvariantCulture,
@"[ \t]*('+|/{2,}) __LLBLGENPRO_USER_CODE_REGION_START
(?<regionName>\w+){0}(.*{0})*?[ \t]*('+|/{2,}) __LLBLGENPRO_USER_CODE_REGION_END", Environment.NewLine);

Have fun!

Oliver Sturm

# re: Regex fun@ Sunday, February 20, 2005 8:13 AM

Oliver: thanks a million for that fix and suggestion! I only tried it on a testcase with 1 region, indeed it needs less greedy matches, thanks for that!. The newline issue is not that important, but as it is easily changed I include that too. Thanks! :)

Ben: I'll still keep this as partial classes solve the problem of adding new methods/properties but doesn't solve the 'add code to existing method' problem. For example, an entity initialization routine which adds a custom validator object to the entity, a custom concurrency producer object to the entity, you can easily do that if there was a region for user code in the initialization method :) with partial classes I can't add that code.

Jeff: "Not surprisingly, you were serious! " haha :) I felt such a complete nerd after reading that ;)

Frans Bouma

# troll RichardGrimes;@ Sunday, February 20, 2005 11:01 AM

TrackBack

# Blog link of the week 07@ Sunday, February 20, 2005 12:07 PM

Blog link of the week 07

TrackBack

# re: To Richard Grimes@ Sunday, February 20, 2005 2:20 PM

Well said Frans.

I think his reason is deeper than meets the eye. I've sat in his talks, and he seems extremely intelligent and academic to me. Unfortunately academics don't make a multi billion dollar company, and at times you need to do things that might seem academically incorrect and financially sound.

And too bad he choose to see the 1% bad and the 99% good wasn't good enough to hold him back.

So now that he's dumped .NET, what is he gonna do next?

- SM

Sahil Malik

# re: To Richard Grimes@ Sunday, February 20, 2005 3:54 PM

I like this idea of academically incorrect but financially sound. In a comment I wrote on your blog a while ago on WinFS, I said basically said I think the decision to postpone WinFS was academically (perfectionism) motivated, but was a terrible decision. I commented further on that in my blog: http://www.base4.net/viewcomments.aspx?Channel.ID=5e284692-c0ae-4235-99d8-3aba5e456a77
I'd be interested in your opinion Frans if you get a chance...

Alex James

# re: To Richard Grimes@ Sunday, February 20, 2005 5:04 PM

Even intelligent authors can get on some pretty dumb tirades. It's one thing to disagree with the finer points of Microsoft's .NET strategy, it's another thing to throw out the baby with the bathwater, as it were, and leave the platform behind entirely. .NET is here, it is succeeding, and those who can't evolve from either the C++ or the VB world need to get off the train. My replies to Mr. Grimes' rant:

http://www.tallent.us/blog/CommentView.aspx?guid=8624a4e9-7fd7-4b83-939d-be1e7b16f799

Richard Tallent

# re: To Richard Grimes@ Tuesday, February 22, 2005 10:47 AM

Wow, the article exemplifies the fact that Mr. Grimes is basically a burned out software engineer (everyone will reach the point where they tire of the "new").

The conclusion of his article sums up his burnout:
"[.NET is] intended for users to develop applications, but not for Microsoft to create operating systems or the revenue generating products that they base their profits on."

Well ... DUH! I wouldn't expect MS to utilize an uber abstraction such as .NET while they're implementing the next version of the operating system; I'd hope 'lightweight' is a requirement.

Matt

# Subversion Export - Update@ Tuesday, March 01, 2005 11:07 AM

A quick update on the last post. It's actually much simpler just to use the exec task to drive svn.exe. My NAnt script works now, but I'm not too happy that I have to install both the TSVN and SVN...

TrackBack

# Continua la migrazione di cervelli da Microsoft a Google@ Friday, March 04, 2005 11:57 AM

TrackBack

# re: Google is going to build a Hailstorm++ ?@ Friday, March 04, 2005 4:22 PM

I think it has a broader scope than CD's and DVD's... I think it also includes how software is installed from websites like windowsupdate. Even though they've simplified the process, you still have to go through some process in order to update your computer. Plus, there are reboots involved, which are expensive as far as user experience goes.

I believe that his point was that online services such as Google and Amazon have the ability to make quick changes to their products because the user just has a simple UI wrapper on their box. The core product is hosted outside of the user's reach/experience.

For example, I was using Google Desktop and heard that there was a security bug. So, I went to see if I was vulnerable and what do you know... the software had auto-updated itself without any interaction from me. Now, if I were a novice computer user, I wouldn't have even noticed that.

The flip side of this argument is that you don't want to automatically push updates to the consumer and end up breaking their computers.

James Geurts

# re: Google is going to build a Hailstorm++ ?@ Friday, March 04, 2005 10:15 PM

Wait a minute, I'm confused.

Are you saying Mark Lucovsky was hired by google because google had a plan?

Damn !!

Sahil Malik

# re: Google is going to build a Hailstorm++ ?@ Saturday, March 05, 2005 6:48 AM

Sounds significant Frans. Keep us posted on your thoughts.

Tim Haines

# re: Google is going to build a Hailstorm++ ?@ Saturday, March 05, 2005 12:05 PM

Frans,

SOA? Next generation? he expressed very intereting thoughts but MS has more then enough $$$ power to compete with Google ;).

Maxim

[www.ipattern.com do you?]

Maxim V. Karpov

# re: SQL Question...to sproc or not to sproc???@ Monday, March 07, 2005 10:15 AM

TrackBack

# re: Using sprocs or ad-hoc sql@ Monday, March 07, 2005 11:23 AM

TrackBack

# re: Google is going to build a Hailstorm++ ?@ Monday, March 07, 2005 4:27 PM

I would agree that shipping CDs to people is cumbersome, but since I can automatically download fixes for Windows, in theory MS could ship fixes to me (almost) as fast as Amazon can provide fixes to their own web site. If they can perfect rollbacks & updates w/o requiring reboots, it could get pretty seamless.

One could argue that a company who updates their own web site is essentially automatically updating it for their consumers & forcing them to go along with the upgrade. Did Amazon previously work on IE4 & now it doesn't? Oops, too bad for you!

So is the real issue that web sites are simpler or more stable or have a less diverse user base than an OS, & thus have the luxury of being able to slam out fixes more easily? I wonder if the updating web sites vs OSs might be more apples & oranges.

Ben Strackany

# re: Google is going to build a Hailstorm++ ?@ Tuesday, March 08, 2005 5:34 AM

Google sickens me. Their motto is "Do no evil", or in other words "don't go the Microsoft route". But in the meantime they build an all-encompassing system in which what hardware or operating system you use is completely irrelevant: everything else will be Google.
Is this a good idea? No, of course not. I wouldn't trust my private data any more with Google than I do with Microsoft. Hailstorm failed because noone trusted Microsoft to keep private data, well, private. Single sign-on Passport? Failed because people don't trust Microsoft. Hiring Lucovsky, introducing their own SmartTags (but wait! You have to turn it on, so it's not evil!), broadening their market from on-line search engine to service host... I don't like what I'm seeing.

And please, to all you blinded OS zealots: even though Google uses Open Source, have you ever seen them contribute a single piece of code back? Google is a commercial company with commercial interests. Whatever "evil" stigma applies to Microsoft in your opinion applies to Google the same.

Wolfgang

# re: To Richard Grimes@ Tuesday, March 08, 2005 9:32 AM

I hesitate to cast stones at Mr Grimes. He's a guy who knows a lot about computer science and has been around for a while. He doesn't seem to be a burnt out software engineer, he seems to be someone bitter that the .Net runtime didn't live up to his lofty expectations.

http://www.devcow.com/weblogs/Trackback,guid,02c45f59-8df3-459d-9406-c4a4b2afeed9.aspx

Matt Ranlett

# re: To Richard Grimes@ Wednesday, March 09, 2005 9:49 AM

If you don't like what you do, do something else. Don't bitch about it though, life's too short. Note to self, do not purchase any Richard Grimes books.

Greg Robinson

# VB6, tanti commenti@ Thursday, March 10, 2005 1:43 AM

TrackBack

# re: VB6, R.I.P.@ Thursday, March 10, 2005 5:09 AM

I want somebody to create a "let VB6 die a natural death" petition. I would sign it.

JosephCooney

# re: VB6, R.I.P.@ Thursday, March 10, 2005 7:23 AM

I remember a similar petition being passed around years ago when MS announced the end of QuickBasic v4.5 and Basic PDS v7 in favour of VB.DOS. Fortunately, MS ignored the petition.

Len Weaver

# re: VB6, R.I.P.@ Thursday, March 10, 2005 7:32 AM

Joseph, me too. Yesterday with a friend I was near to create a dedicated org website.

Marco Russo

# re: VB6, R.I.P.@ Thursday, March 10, 2005 9:54 AM

" Microsoft made the decision a long time ago to move every developer to the same platform: no more COM or Win32 or VB or Java, but solely .NET"

The problem is that that decision costs a bunch of other people money, not Microsoft. If you sunk money into VB code with the expectation of being able to keep it around for a while, and stay relatively current with the platform, that assumption is now wrong.

My sincere hope is that as many folks as possible that are in this situation either stick with what they have for as long as possible, or switch to somebody else's platform and/or development tools. That's the easiest way to make Microsoft bear the burden of some of these costs.

mschaef

# re: VB6, R.I.P.@ Thursday, March 10, 2005 10:42 AM

I think MS should offer extended support for VB6. I hate the thing, but hey...

And, I think most VB devs just feel the pain of shipping the .NET Framework, with its slow WinForms, etc.

Michael Giagnocavo

# re: VB6, R.I.P.@ Thursday, March 10, 2005 11:17 AM

I'd also sign a petition for putting us out of the misery that is VB6. I don't want 5 minutes of MS time that can be spent on new technology keeping that brain-dead language alive. Everyone has known that this day was coming, and the fact that these fools have misled their clients and companies into believing that MS wouldn't EOL VB6 doesn't change the fact that its life is over. And the clueless whining by some of these "MVPs" is just embarassing.

Mickey Williams

# re: VB6, R.I.P.@ Friday, March 11, 2005 4:00 AM

I am not an MVP and I thought these guys were supposed to be at the high end of the developer tree.
I was one of the VB developers who berated Microsoft for not giving us OO in VB4, 5 and again in 6. In fact I did for a while leave VB because Delphi had what VB did not.
I started playing with .Net with the first beta and really cheered, everything I really wanted in a development language.

Then I found C# but that is another story 8¬)

OK so VB6 will no longer be supported, but so what? I stopped developing my stuff in VB6 a couple of years ago, but I can still write code in it for maintenance purposes - what is still there doesn't need to change, and when it does the new parts will be in .Net - they can work together - until I either retire them or completely migrate them.
No Microsoft, please concentrate on giving us better tools, rather than supporting old versions.

Alan Bell

# VB.NET vs @ Friday, March 11, 2005 10:01 AM

TrackBack

# re: VB6, R.I.P.@ Friday, March 11, 2005 7:03 PM

Alan wrote:
"I am not an MVP and I thought these guys were supposed to be at the high end of the developer tree"

Sad to say that that is not always the case. For every excellent forward thinking MVP like Frans Bouma there is somebody stuck in the past. I often wonder what these MVP's are thinking. There are still Windows 98 MVP's believe it or not. How long is that going to last?

For those wanting a petition to sign, I was going to put one up, but then saw this post over on AddressOf.com:
http://addressof.com/blog/archive/2005/03/10/1430.aspx?Pending=true

That's good enough for me. It's just not worth the effort as the lunatic fringe seldom succeed anyways.

Be well.

Dave - C# MVP (former VB6 coder)

David Totzke

# re: VB6, R.I.P.@ Friday, March 11, 2005 9:02 PM

The point doesn´t seem to be clear.

I am one of 203 MVPs who signed the petition. And have been developing in VB.NET for over one year now. And love it. But it is not VB.

Besides my current project, I have a couple of huge systems from which I make my living. Both are completely written in VB6.

I adopted VB 7 years ago, after 13 years programming in C for *nix, Netware and MS-DOS. And I chose VB over Delphi -which is clearly a much better programming language- because of Microsoft´s alleged commitement to the long term stability of the language. Seven years are no long term at all.

My main concern is the life expectancy of those two systems. The petition requests a rebuild of VB.COM integrated within the Visual Studio IDE. Personally, I find that point kind of too radical. If VB were given all that is needed to make of it a good, sound OO language, it would become VB.NET (if they ever manage to raise VB.NET above its present Beta level of quality).

The terminantion of mainstream support means that if a Windows updte breks compatibility, nor we developers, nor any of my current users, will have the right to request a free hot fix.

It means that my applications -which I will not port, because porting doesn´t do any justice to the improved features and capabilities of the new tools, and therefore is a useless excercise- will become enemical to Windows Updates. Until a finish a redesign -and subsequent reconstruction- of those systems, every new update is a potential nightmare.

Until the products that 6 million professional VB developers get redesigned (or ported) to leverage the many Framework improvements -and it might take several years- a large number of users will be afraid to perform Windows Updates, or install the latest OS version.

So, it´s not me who doesn´t want to "move on". It´s the sheer weight of a code base that -like your CURSUS interface libraries- doesn´t deserve to be improved, but it doesn´t deserve to be killed by decree either.

If the outcome of this turmoil were that MS accepted to extend support for VB applications for five more years (I don´t really need any feature added to VB6, and I have learnt to live with its bugs -as with any language that I have previously used). But I expect them to guarantee that my apps will remain alive for -at least- five more years.

Otherwise I will be forced to completely move to another platform and set of tools.

It's a matter of trust.

Salud!

Leonardo Azpurua

# re: VB6, R.I.P.@ Saturday, March 12, 2005 5:02 AM

Leonardo: you miss the point. In the history of VB, porting of code was one of the things you had to deal with (16bit vbx to 32bit com, dos to windows etc.). But... ONLY if you wanted to use the new platform's features. If you didn't want to, you can perfectly run the older ide and use that one. When I have to do maintenance to my old VB6 stuff, I run VB6, do the maintenance and I'm done, and that's not going to change April 1st.

Please also read Paul Vick's reply to this petition. He has some very insightful remarks. What I also found a good posting was the AddressOf.com posting, already linked in the reply above you. Paul Vick's reply: http://www.panopticoncentral.net/archive/2005/03/10/7951.aspx

Frans Bouma

# LLBLGen Pro : New Release, New Trial Terms@ Saturday, March 12, 2005 11:25 AM

TrackBack

# re: VB6, R.I.P.@ Saturday, March 12, 2005 8:17 PM

Frans, it's you that misses Leonardo's main point, that of "The terminantion of mainstream support means that if a Windows updte breks compatibility, nor we developers, nor any of my current users, will have the right to request a free hot fix."

That's what a lot of us are worried about. I don't write new code in VB6 anymore either, but I have a lot of existing code that cannot be ported easily to .NET. (Far to much code, far to little budget...)


Bob Comer

# re: VB6, R.I.P.@ Sunday, March 13, 2005 4:49 AM

Bob, I understand that concern, but MS' testlabs test a fix against a lot of existing applications and frameworks, including VB6, even VB5. This means that if a fix is released, the fix is regression tested against the VB6 RT.

The free fixes you're talking about are fixes for the VM and IDE, which are after 6 years a bit unlikely, especially because they released already 6 SP's. I.o.w.: the bugs you'll find now, you'll have to live with them, but you've already done that for 6 years.

Win32, COM interfaces of windows components used in VB6, these things don't change by definition. This means that if you use them in your VB6 app, they WILL stay the same by definition, which assures your application won't break if you apply a windows fix which for example alters the win32 api.

Frans Bouma

# re: VB6, R.I.P.@ Sunday, March 13, 2005 6:09 AM

Bob: from the horse's mouth:
http://blogs.msdn.com/Brad_McCabe/archive/2005/03/12/394658.aspx

Frans Bouma

# re: VB6, R.I.P.@ Sunday, March 13, 2005 7:53 AM

Frans,

In the web log you quote -- yes, that is at least some good news, I hadn't thought of that angle, but it doesn't cover ongoing maintenance of VB6 code, which is still a problem, and running on something earlier than XP is probably still a problem as well.

We can't really trust that no customer apps will be broken by fixes in other compnoents as you suggest, and since the devlopment environment is not supported, it may be broken too, so even if the runtime is supported, that doesn't mean we have a running app.

There's certainly no way even Brad can guarantee that the VB6 runtime will work in Longhorn when it is released.

As for existing bugs, I'm not worried about that -- I've lived with the bugs, know them and their workaraounds.


Bob Comer

# re: VB6, R.I.P.@ Sunday, March 13, 2005 12:28 PM

"We can't really trust that no customer apps will be broken by fixes in other compnoents as you suggest, and since the devlopment environment is not supported, it may be broken too, so even if the runtime is supported, that doesn't mean we have a running app."
Is this really a high risk? I mean: you're dealing with COM components. This means that there is interface versioning. This also means that newer versions of a COM component will have a different interface ID (CLSID) and thus your VB app will use the old(er) ones.

So existing code will IMHO keep on working, what's indeed a problem, but nowhere is this MS concern, is that 3rd party vendors stop supporting COM versions of their controls. Though, the market for COM controls is still far bigger than for .NET controls, so the first few years this is not a problem by far.

After a few years from now (say 3) it might be a bit of a problem, to find good 3rd party controls which support newer features (i.e. xp theming and the like), but that's not really an area 'maintenance' work will have to deal with. (IMHO)

Frans Bouma

# re: VB6, R.I.P.@ Sunday, March 13, 2005 11:14 PM

"Is this really a high risk? I mean: you're dealing with COM components. This means that there is interface versioning. This also means that newer versions of a COM component will have a different interface ID (CLSID) and thus your VB app will use the old(er) ones."

I can't really answer that, but past track record isn't exactly wonderful. More can break than COM compnents as well.

"So existing code will IMHO keep on working, what's indeed a problem,"

No guarantee of that as I said.

"but nowhere is this MS concern, is that 3rd party vendors stop supporting COM versions of their controls."

Darn right it's Microsoft's concern when the code base is so large, you don't want to alienate that many customers. Since we have to rewrite our VB6 code anyway, we can rewrite it for any platform, even non-Windows, so Microsoft ends up losing on new revenues. (of course not everyone will, but some will and any erosion is less money.

"Though, the market for COM controls is still far bigger than for .NET controls, so the first few years this is not a problem by far."

Like I said, it may not get rewritten for .NET...

I might also add that I don't sell my code, I'm an emplyee of a corp and I only write in-house stuff, so my needs don't relate to a software house type situation.

"After a few years from now (say 3) it might be a bit of a problem, to find good 3rd party controls which support newer features (i.e. xp theming and the like), but that's not really an area 'maintenance' work will have to deal with. (IMHO) "

I'm not concerned with that at all, I am concerned with VB6 code being able to continue running. I usually program to LCD feature anyway because of the number of OS's my code has to run on. The VB6 runtime being supported until XP goes off support helps because the timeframe is longer, but i'm still worried that code can be obsoleted like that. That's not what happens on bigger enterprise level OS's.

IMHO, of course...

Bob Comer

# Google is going to build a Hailstorm ?@ Monday, March 14, 2005 1:15 PM

TrackBack

# re: Billy 'Wicked' Wilson dies, age 33.@ Wednesday, March 16, 2005 4:38 AM

Same here. Really sad he lives a small kid behind.

Dennis van der Stelt

# re: Billy 'Wicked' Wilson dies, age 33.@ Wednesday, March 16, 2005 5:29 AM

Very sad yes :( In fact, reading his opening post every day was reason enough to visit VE for years on end, it even inspired me to run a similar site for about nine months posting more than 1000 entries. Just because I wanted to run a site like his.

Jeroen van den Bos

# @ Wednesday, March 16, 2005 11:07 AM

TrackBack

# re: Billy 'Wicked' Wilson dies, age 33.@ Wednesday, March 16, 2005 12:48 PM

Man that brings it back. I remember hating the site back in the day because I owned an early Nvidia card (Riva 128) and there was this whole Voodoo vs Nvidia thing going on. Then I eventually realized it was one of the best gaming news sites around at the time (along with Bluesnews and Scary's).

VE3D just wasn't the same when Billy was forced out of VE3D by Apache, and GamingGroove never quite got going properly.

R.I.P. Billy

Cadmium

# re: Billy 'Wicked' Wilson dies, age 33.@ Wednesday, March 16, 2005 4:54 PM

Wow, that is very sad. As weird as it seems, I got the idea for CoasterBuzz.com in part because of VE. I too wanted to be like him.

I don't know the reason for him getting sick, but he sure seemed to have been dealt a crappy hand in the demise of VE. God rest his soul.

Jeff

# @ Wednesday, March 16, 2005 5:41 PM

TrackBack

# re: Anonymous Cowards are sometimes too funny :)@ Thursday, March 17, 2005 4:36 AM

Excellent article to wake you up

Miha Markic[MVP C#]

# re: Anonymous Cowards are sometimes too funny :)@ Thursday, March 17, 2005 10:38 AM

http://developers.slashdot.org/comments.pl?sid=142719&cid=11963389

Johan Ericsson

# re: Anonymous Cowards are sometimes too funny :)@ Thursday, March 17, 2005 4:20 PM

The infamous EggTroll,

Some of his stuff, take your pick :-)

Assembly replacing C++/Java: http://groups.google.nl/groups?q=g:thl60890884d&dq=&hl=en&lr=&selm=4e2f159f.0206190806.612ef2c3%40posting.google.com

The Superiority of PHP over Perl:
http://groups.google.nl/groups?hl=en&lr=&selm=4e2f159f.0212251625.702cd571%40posting.google.com

Kind regards,

Marcel

Marcel

# re: Anonymous Cowards are sometimes too funny :)@ Thursday, March 17, 2005 4:27 PM

VB is faster than Java? Only if he means VB.NET and not VB6!

Jeff

# Transitioning to... VB6?!@ Friday, March 18, 2005 6:28 PM

TrackBack

# re: Pessimistic Concurrency in Data Access / ADO.NET@ Tuesday, March 22, 2005 4:37 AM

TrackBack

# subversion@ Tuesday, March 22, 2005 5:21 PM

TrackBack From:http://www.cnblogs.com/hbifts/archive/2005/03/23/124033.html

TrackBack

# Scoring the Visual Studio 2005 pricing and packaging debate: Everybody's a little bit right.@ Thursday, March 24, 2005 5:58 AM

TrackBack

# re: Why Microsoft makes a mistake with the MSDN subscription changes.@ Thursday, March 24, 2005 6:21 AM

Exactly...! That's where we are.

After reading the MS blogs I think they've designed Team System to suit a Microsoft style development team structure, and the marketing material\SKUs reflect that.

So what happens to the rest of us?

The pressing problem is that if Microsoft don't fix this soon, there will be far fewer Beta2 testers - not many people will bother testing it if they feel it is too expensive.

Best regards
Steve

Steve Hurcombe

# re: Why Microsoft makes a mistake with the MSDN subscription changes.@ Thursday, March 24, 2005 6:27 AM

Excellent point, Steve! I too won't bother team system installations here, as we won't shell out that money for the system and will keep using our current setup of open source tools.

And the irony is: these open source tools do work also and I can't help it but I recommend these to others if they ask me what we use. Why would I recommend something from MS instead?

Frans Bouma

# re: Why Microsoft makes a mistake with the MSDN subscription changes.@ Thursday, March 24, 2005 6:58 AM

Well said!
I am a IT Manager and developer. I am the only developer but I still want testing, source control etc. Microsoft allways seem to think developers working big teams and it bugs me

Ian Dixon

# re: Why Microsoft makes a mistake with the MSDN subscription changes.@ Thursday, March 24, 2005 8:08 AM

How can a startup company shell out the money for this functionality to develop on .NET? I thought MSDN subscriptions were a great idea, and a huge money saver to get all your tools. How is Microsoft going to go up against Java/Eclipse which has a ton of plugins for functionality, and is free of charge? Visual Studio used to be cheap compared to Websphere and other Java IDE's. IMHO the .NET framework is more preferable over Java, but why choose .NET if you have to go around and grab third party/open source tools (like you do with java) to get your job done.

I have a feeling there will be a "Internet Explorer" effect with this. Microsoft won't do crap about it until they notice market share dropping.

Jason Best

# re: Why Microsoft makes a mistake with the MSDN subscription changes.@ Thursday, March 24, 2005 8:56 AM

Microsoft has made a huge mistake here. The large majority of small ISV's and consultants use Microsoft products because we have (had) access to their products at a low cost for development and felt Microsoft was "getting their money" from when out development work was put into production by our customers who paid for the full non-development licenses. For enterprise development Microsoft's model works, just too bad their is not much enterprise development being done in exclusively Microsoft shops. Since VSTS is obviously where MSFT is putting its efforts, are the small guys just going to be kicked to the curb. Our companies cannot afford to spend an extra 10K per developer/ per year. I know for Senior developer this cost might be justified, but how about the new hires making less than $40K and requiring months of training on Team System?? First time in a long time I have begun seriously looking at alternative development solutions.

Greg R.

# re: Why Microsoft makes a mistake with the MSDN subscription changes.@ Thursday, March 24, 2005 10:03 AM

Greg, Jason, _excellent_ points.

Frans Bouma

# re: Why Microsoft makes a mistake with the MSDN subscription changes.@ Thursday, March 24, 2005 10:11 AM

Frans, excellent distinction between wants and needs. It goes to heart of this vain attempt at "social engineering" of our development organizations...many of which are haphazard such that a good many developers where two or three hats.

My guess is that a lot of companies (mine included) will balk at the "barrier to entry" price of VSTS Suite for all developers, and will attempt to pidgeon-hole their developers into a single role to save money.

This won't bode well for those shops already using agile methods like TDD. In fact, I think it will have a chilling affect and cause some to rethink using TDD since the tools cost too much (and they don't want to rely on open-source tools). Sad, sad, sad!

The other problem with this high "barrier to entry" is that even though it will probably be cheaper than competing products (ClearCase, Perforce, etc.), shops tend to get locked in after "investing" $20-50K over the previous 2-3 years...and are unwilling to switch. Why? Because a lot of shops modify their SCCS's to do sensible things like "forced dry-run builds before checkin". (That's just the tip of the iceberg to this lockin...) If MS doesn't supply a 1-CAL VSTS Suite and 1-connection TFS in MSDN Premium, then it becomes VERY HARD for the Staff Developers and Project Leaders to justify switching to an even lower-price set of products. (Esp. since they're a "1.0" release!)

In short, the lack of 1-CAL VSTS Suite and 1-connection TFS in MSDN Premium will disenfranchise a lot of experienced developers into bothering to help sell the product to their mnagers and company. MS will be losing a large chunk of their unofficial sales force!

Steve Hall

# re: Why Microsoft makes a mistake with the MSDN subscription changes.@ Thursday, March 24, 2005 10:29 AM

I had already dropped Visual Studio itself (and webforms, actually) because of the pretty extreme bloat of the system. I wasn't even thinking about price at the time, but now there's a new reason to do this.

Perhaps this is a viable option for you? Just dump the whole thing, use NAnt or the 40-line assembly compiler I wrote, and any text editor like TextPad or Crimson or vim.

You can use bugzilla or something quick and home-grown for bug tracking, CruiseControl or something home-grown for continuous integration, mbunit for unit testing, and subversion for source control. All those things work well, are free, and aren't big frameworky things that you have to spend a lot of time adapting.

Steve Willer

# re: Why Microsoft makes a mistake with the MSDN subscription changes.@ Thursday, March 24, 2005 12:24 PM

I'm not sure I agree. Let's look at what's changed in terms of pricing: nothing :). Microsoft still offers nearly the exact same products for nearly the exact same price. They come out with an addition to its development tools that represent a certain value, and they provide a package that includes that addition at an increased cost.

The problem is that we're so used to Microsoft's practice of providing *all* of its products for "free" in its Universal Subscription that we feel like we're owed.

Do I feel like Microsoft is missing the boat in not providing these tools for the small-ISV, or single developer consultancy? Yes; most definitely, yes. And they probably will, given time. However, for now - *nothing has changed*. We can continue to get all of the same tools - which still include all of the server products - for nearly the same price as before. Why are we complaining? Our value proposition hasn't changed. We're just mad we don't get the new stuff, and we're mad MS chose to support the big folks first. This seems to me more a case of size envy. :)

Jeff...

Jeff Gilbert

# Linked@ Thursday, March 24, 2005 12:46 PM

I've been complaining loudly about the price, but you've done an excellent job expressing the frustration underlying the cost factor.

So, I linked here so people can read what you have to say.

http://romsteady.blogspot.com/2005/03/reasoned-dissection-of-vsts-debate.html

Michael Russell

# re: Why Microsoft makes a mistake with the MSDN subscription changes.@ Thursday, March 24, 2005 1:26 PM

Call me what you will, but frankly I don't see the big deal. I work at a small ISV. Today we use Visual Studio 2003 (w/MSDN-U) + Compuware DevPartner Studio (profiling, coverage, debugging) + NUnit + TestDriven.Net + Surround (SCC) + TestTrack Pro (bug-tracking) + Visual Build Pro (automatic build tool). Next year...we'll use Visual Studio 2005 (w/MSDN Pro) + DevPartner Studio + NUnit + TestDriven.Net + Surround + TestTrack Pro + Visual Build Pro. Might check out NAnt at some point, but no rush. Development will be no more expensive than it was this year, and no less functional. Personally, the thought of trying to move all of our existing pieces from the current system which works *just fine* for us to an entirely new system sounds hideous. I wouldn't touch it with a 10-foot pole if it were FREE.

Anonymous

# re: Why Microsoft makes a mistake with the MSDN subscription changes.@ Thursday, March 24, 2005 2:51 PM

Their pricing doesn't work for us either. My company I work for doesn't make software but we have a number of developers that do work in small teams(sometimes) usually it's one developer per dept. There is no way in h3ll my company is going to cough up that kind of cash for development tools. They will have us switch to something else before they will pay that kind of cash. We are the largest company of our kind in the US so my guess is many companies that do the same thing as we do will also be dropping MS tools in light of this pricing. If we can't afford it I'm sure they can't either. We already dropped all of our MSDN subscriptions. I wonder if we are going to be made to switch to Borland now in light of this? We already use them for some projects, this makes it look like it soon might be all projects. I was already pushing them to switch to Vault anyway so this might be just the ammo they need to totally switch over. I am going to look into FogBuzz or Bugzilla for bug tracking too. I think MS made a very, very bad decision with their pricing model here.

Andy

# re: Why Microsoft makes a mistake with the MSDN subscription changes.@ Thursday, March 24, 2005 3:00 PM

I do work in a reasonably large shop. We don't have thousands of MSDN Universal licenses, but it is 100+. And even though I am in a large shop, I wear multiple hats just like the folks in the small ISVs.

I've been holding off on looking at alternative tools with the promise of VS2005 and VSTS. However, that is about to change as I seriously doubt my employer will be willing to pay quadruple the current price for 100+ developers.

Bob

# re: Why Microsoft makes a mistake with the MSDN subscription changes.@ Thursday, March 24, 2005 3:08 PM

The $10,000 price just doesn't fit small ISVs. What worries me even more is that Microsoft has now established a pattern of locking Visual Studio to .NET framework version. So, the $10,000 I shell out for this year's .NET 2 framework won't last 5 or 10 years unless I pay another $5k a year to keep it up to date. My immediate reaction is to start looking at other development solutions and possibly platforms.

Marcus McConnell

# re: Why Microsoft makes a mistake with the MSDN subscription changes.@ Thursday, March 24, 2005 3:38 PM

Developers(1)(2)(3), Developers(1)(2)(3), Developers(1)(2)(3), Developers(1)(2)(3), Developers(1)(2)(3), Developers(1)(2)(3),Developers(1)(2)(3)....


(1) Must have budget to support $5000/year software habit.
(2) ISVs/MicroISV's not welcome.
(3) Patent Pending. Not sure on what but ...

Mark

# re: Why Microsoft makes a mistake with the MSDN subscription changes.@ Thursday, March 24, 2005 3:56 PM

Jeff,

"However, for now - *nothing has changed*. We can continue to get all of the same tools - which still include all of the server products - for nearly the same price as before. Why are we complaining? Our value proposition hasn't changed. We're just mad we don't get the new stuff, and we're mad MS chose to support the big folks first."
I think that *because* nothing has changed, there is really no need to re-new a MSDN universal subscription, as the value added by the new model is none (IMHO). Much more efficient is to pay 799$ per professional license, as you get sqlserver dev server with that anyway.

But the functionality is there, it's been written, though not accessable using the same way we always accessed _every_ developer toolkit out there. MSDN Universal gives you a dev license for biztalk server and MS CMS, two products which costs 10 times more than TFS...

Frans Bouma

# re: Why Microsoft makes a mistake with the MSDN subscription changes.@ Thursday, March 24, 2005 10:53 PM

WOW. Who came up with their pricing ideas? So, if I want 1 or 2 people with integrated source control, bug tracking, tests, etc.... I have to pay $10,939 + $2,799 for TFS and $5,089 more if I want "Team Test Load Agent" (no idea what this does, but sounds like how we do load testing?)... for a total of $18,827.

LOL.

Well, I'm really annoyed now. I held off looking at some of the other solutions since they aren't as polished as TS is gonna be... but at that price... screw it.

And Eric's "747 to McDonalds" -- that's a really bad comparison. Even if it's just 2 people developing (hell, even one), I still might want a nice integrated system.

Michael Giagnocavo

# Visual Studio .NET 2005 @ Friday, March 25, 2005 12:00 AM

TrackBack

# re: Why Microsoft makes a mistake with the MSDN subscription changes.@ Friday, March 25, 2005 12:01 AM

It's frustrating that Microsoft isn't being consistent with how it's offering its tools to its developers. *I'm* frustrated because I was really looking forward to the new suite. But I really have a hard time justifying being angry that Microsoft isn't giving me something else - especially such a significant product - for free.

But, really, again, nothing has changed. I think it's more a matter of a perception of being shortchanged, than a reality.

And I don't think MS will lose much, if any money here, because people still need to access the rest of the server products, and the best deal in town for this is still MSDN Universal/Premium - and it's really a great deal.

The fact that MS decided to offer 4 new subscriptions that happen to contain this new product we all want at prohibitive prices is frustrating - but we haven't *lost* anything in the cost and value proposition of Universal. We're just pissed we can't get the new product.

So, I agree: Buy the subscription level that is most appropriate to your needs. A consultancy will probably still want Universal/Premium to cover the wider selection of clients and needs they must cater to, while an ISV will probably not find it necessary to shell out the money for access to all of the server products, and settle for the professional version...

Jeff Gilbert

# re: Why Microsoft makes a mistake with the MSDN subscription changes.@ Friday, March 25, 2005 4:27 AM

Slowly MS is alienating their users AND their developers. It wont' be overnight, but they are changing the landscape for themselves in a hugely negative way. With so much bad press, I'm shocked they keep pulling bad PR stunts.

Linux zealots don't even need to be involved.

I hope Novell does well with Mono, at least my investment wouldn't be wasted in the long run.

Remember: Regardless of how MS folks try to sell us on this new direction they aren't listening ... Perception IS Reality.


Joe

# re: Why Microsoft makes a mistake with the MSDN subscription changes.@ Friday, March 25, 2005 10:23 AM

One of the biggest problem with this pricing is that going into the future, Microsoft will be boxing developers into a narrow set of tasks. As an independent developer, I primarily bring architectural and development skills to the table. I can layout your system and build it. Microsoft is essentially saying no, you only design *or* build the system. Mr. developer, you do not need architectural tools and you, mr. architect do not need the development tools and neither of you need automated testing. Ridiculous.

Thomas

# re: Why Microsoft makes a mistake with the MSDN subscription changes.@ Friday, March 25, 2005 11:24 AM

Microsoft has some pretty bad timing with all of this. I recently used Eclipse with JDK1.5 and the VE and GEF. The progress that they have made over the last two years is astounding. Now that somone over in OpenSourceLand(tm) is actually paying attention to integration the tools are getting much better.

And then MS pulls this stunt.

Joshua Prismon

# re: Why Microsoft makes a mistake with the MSDN subscription changes.@ Friday, March 25, 2005 12:26 PM

"Or use subversion + the NCover/NUnit tools and a free Linux-based bugtracking system."
This is exactly the type of thing I've been working on and documenting how to set up. Subversion auththenticating through LDAP to AD, Trac as a Wiki/Bug tracker, CruiseControl.Net, NDoc, NAnt, NDepend, etc. Perhaps I should finish it up and publish for people.

Clint

# re: Why Microsoft makes a mistake with the MSDN subscription changes.@ Friday, March 25, 2005 1:49 PM

Eric Sink would, of course, stand to agree with this price change ... his company produces the products that will nicely fill the niche, in smaller ISVs, MSFT is creating by the 300% price hike. ;)

Matt

# re: Why Microsoft makes a mistake with the MSDN subscription changes.@ Friday, March 25, 2005 3:31 PM

Actually, after really going over things and learning more, it only looks as if I have to shell out $2700 for TFS. Team Suite looks nice, but I'm not sure how much of it I'll need. Testing is still in Dev edition (although, not some types). The architect edition has "Whitehorse". Maybe that'll be cool. But I dunno yet.

The Load Agent Test Team or whatever it's called is for running distributed tests. That seems a steal at $5K.

Michael Giagnocavo

# re: Why Microsoft makes a mistake with the MSDN subscription changes.@ Saturday, March 26, 2005 3:42 PM

Frans:
"MSDN Universal gives you a dev license for biztalk server and MS CMS, two products which costs 10 times more than TFS"

But a developer isn't the intended end user for those, so they get it cheap. The developer is the end user for TFS.

You don't get what many think you get in MSDN/U if you follow the licencing strictly, and I think the licence position is Microsoft's starting point. I can see the logic, but I don't like it.

David Nicholson

# O/R Architectural Wars@ Sunday, March 27, 2005 9:23 AM

The benign question "what is your favorite O/R mapper?" unleashed all hell on the Asp.Net forums , later to be "summarized" by one of the "sides" here. I am reminded, of course, of Ted Neward's statement on DotNetRocks of O/R mapping's similarity to the Vietnam War - the root of which came from trying to do too much. I too believe that in our search of perfection we may be stretching things beyond their calling. Yes, OO was a big step forwards in how systems are developed. Does this mean that everything we touch must be an object? One of the more debated topics around O/R mapping is that of querying - ad hoc as well as "pre-compiled". Examples abound - "get me all the customers with outstanding orders totalling between $10,000 and $25,000" and foreign-key types like "show me all products in this category". I have one question, to those believing that O/R mapping can/should(?) take care of all of the above: Why do I need a customer object for that? Really. It's just a report on data - a read-only report: notice the "get me" and "show me" at the beginning. At that exact point in time, I just want to show some kind of report to the user, I don't need behavior filled domain objects. To tell you the truth, almost anything I show to the user doesn't need to be immediately backed by a domain object. Should the user choose to edit one of the customers, or add another category the product falls under, right then and there I'll go and get the ONLY domain object I need, and use it. Also, remember that in many cases, these queries can be very complex. I really don't want to be doing that on my performance critical transaction processing system. 9 times out of 10, I can work against a de-normalized reporting database that has data accurate to the last week/day/hour/whatever. So, the path I tend to walk is somewhat hybrid. At times, I like the productivity gains when using O/R mapping tools on small to medium sized projects, but still remaining with my own code for reporting. On larger projects, I can't not have the source to a major part of the system, and I can't work around things that don't fit well. In these cases, I go for a more code-gen approach (like that of Eric Smith's CodeSmith) and write more of the code myself (well, all the team writes more of the code). To sum up, don't get addicted to any one kind of coolaid. You just might fall onto the project where it doesn't fit so well. Oh, and one more thing, architecture isn't just about how to persist your data and query it later....

TrackBack

# re: What's on the menu at Devdays!@ Tuesday, March 29, 2005 4:32 AM

TrackBack

# What Team System has done to the load testing market@ Tuesday, March 29, 2005 4:37 AM

What Team System has done to the load testing market.

We have been looking for a tool to do load testing for our Web (and possibly) Winforms applications. Due to the fact that team system was on it’s way and may be included is the ISV Advantage programme, or made affordable for Microsoft partners in some other way, we have delayed buying a load testing solution. With are not a Microsoft partner, however if we got a ‘free’ load testing tool for become one it would be worth the time and afford of becoming a partner.

The price of Team System (test edition) is not that match different from a 3rd party load testing solution once you have pay for a reasonable number of virtual users (say 50+). However 3rd party load testing solutions tend to have a cheep version that can be use by developers for testing with a low number (under 10) of virtual users. If we went with Team System, none of our developers will even be able to run a load test on there machine to repeat a “single user” problem.

With all the time we have had to spend looking at the different tools, and trying to get agreement from management and the board to spend money on a load testing tool, we could have taken one of the open source ones as a base and written out own (make it cope with ViewState). Like most companies, it is easy to “spend time”, but “spending money” is a lot harder…

We use CVS and subverson (on new projects) for source code control, as they are good enough and avoided having to get everyone to agree to buy a source code control system. They are not the best solution, but I rather spend time sorting out a problem with a bit of software, then have to try to talk a director into spending money, if I enjoyed getting people to spend money I would be a sales person and not a programmer.

Getting agreement to buy MSDN is still hard but only had to be done once it is included 100% of what I needed to do my job. I rather only have to get agreement to a single order event if it costs a bit more (it’s not my money after all). However with the price going up to $10,000 MSDN that no longer an option!

I have also noticed that some of the 3rd party vendors of load testing tools seems to have stop realising new versions of there software until they see what Microsoft does. How can you justify developing a testing solution, when one day soon (with in next five years) Microsoft may drop the cost of theirs to the point that a lot of your customers at it for “free” as part of the normal MSDN level?

Given the very high level of lock in with source code control, and the fact that the enterprise level software is so match more complex, I can see how someone can complete with Microsoft on source code control. However with testing tools, I have found that the enterprise level software is quicker to learn then the cheaper packages. The cheep load testing tools do not even have any logging to tell the tester what has gone wrong. Therefore I would like the high level testing tools if only they were affordable.

Ian Ringorse
Ian at Ringrose dot Name

Ian Ringrose

# re: CodeZone? Another marketing driven community doomed to fail.@ Wednesday, March 30, 2005 4:30 AM

Couldn't agree more, the forums & the newsgroups are the only sites I visit regularly.

I don't think I've been to gotdotnet in about 2 years, why? Because I don't have any reason too..

Scott McCulloch

# re: CodeZone? Another marketing driven community doomed to fail.@ Wednesday, March 30, 2005 4:52 AM

As far as I understand it (based on some european meetings last year) is that they're aiming to make Codezone a place where - instead of going to CodeProject or the ASP.NET forums to search - you go to Codezone, perform the search, and get directed not only to CodeProject, but to matching resources on all the other great community sites out there.

Codezone in itself is not aiming to be another community to compete with the existing sites. (Or at least, that's what they keep telling us when they got some ... interesting debate... at the meetings last year!)

James Crowley

# re: CodeZone? Another marketing driven community doomed to fail.@ Wednesday, March 30, 2005 8:32 AM

James,

So what's the added value of CodeZone as you describe it versus doing a decent Google search?

Regards,
Wim

Wim

# re: CodeZone? Another marketing driven community doomed to fail.@ Wednesday, March 30, 2005 8:53 AM

I totally agree, another point I think is the communities that are successful are usually a grass roots effort. They're usually started by someone who is passionate about technology and wanted to start something to share the information with like minded people. Running the site then becomes more of an obsession for those kind of folks, and not just some marketing job.

Patrick Santry

# re: CodeZone? Another marketing driven community doomed to fail.@ Wednesday, March 30, 2005 9:16 AM

I couldn't agree more. well said, comrade.

brady gaster

# re: CodeZone? Another marketing driven community doomed to fail.@ Wednesday, March 30, 2005 10:07 AM

What's even worse is that even when it works, it's useless. I did a search for user groups in the state of Washington. You'd think there would be a couple near Seattle and Redmond right? Not according to Codezone. They couldn't be bothered to do any research and add in the ones that they (MS) already know about. Like the ones that MEET ON CAMPUS!

According to Codezone, there is only one user group of any kind in the entire state of Washington and it's located in Spokane. Whoops, I spoke too soon. I just did a search and now it is showing two user groups. Neither of which are the http://www.dotnetusers.org/default.aspx) oldest .NET user group in the country or http://www.netda.net/ which meets in building 40 on Monday of every week.

Scott

# Making CodeZone more relevent (under INETA)@ Wednesday, March 30, 2005 11:19 AM

Making CodeZone more relevent (under INETA)
http://weblogs.asp.net/sbchatterjee/archive/2005/03/30/396264.aspx

SBC

# re: CodeZone? Another marketing driven community doomed to fail.@ Wednesday, March 30, 2005 11:56 AM

Wim: The added value would be at the moment I can't easily say "show me all the user groups in my area" to Google, nor can I do things like seeing list of all the articles a particular author has written across multiple sites.

Scott: This may be simply be because the site isn't properly up and running yet... I have no idea. And I presume until they can merge the INETA database, it will be up to user groups to register their existence.

Disclaimer: I'm just writing these as my own understanding (as an independent community) of how Codezone will work. A far better source of information is probably the Doug Seven's Codezone space at http://spaces.msn.com/members/codezone/

James Crowley

# re: CodeZone? Another marketing driven community doomed to fail.@ Wednesday, March 30, 2005 2:10 PM

James is correct, CodeZone is some sort of portal and not something to compete with community sites.

Miha Markic[MVP C#]

# re: CodeZone? Another marketing driven community doomed to fail.@ Wednesday, March 30, 2005 2:43 PM

James - thanks for the update on Doug Seven's CodeZone space.

SBC

# re: CodeZone? Another marketing driven community doomed to fail.@ Wednesday, March 30, 2005 5:30 PM

Codezone is a brand for activities related to the developer communities. Many of you are probably not familiar with different codezone implementations, since they are developed in EMEA and in LatAm.

In order to help local communities (both large and smaller ones) and make them visible, local codezone site can be implemented. www.codezone.com is US version of codezone. In Switzerland (www.codezone.ch), Germany (www.codezone.de) or UK (www.codezone.org.uk) we have completely different codezone implementations. All codezone sites shares the common platform and consumes (in future) the federated services. This should help both microsoft and local communities to easily connect to each other.

This model is community driven - people from the community decides about the implementation. As James explained already, codezone is built based on the feedback from meetings with community leaders. One important fact is, that codezone is not about fighting against or replacing the community. Main goal is to make community content visible and to lead users to the community sites. Microsoft cannot support each single community site with promotional activities, but they can support one single entry point (meta database).

From INETA point of view: we will rebuild our web site soon and expose (probably web) services for our content - such as UG details, events and speakers. We are kean to expose our content to anyone who is interested in promotíng us. ;-))

Damir

# YAP on CodeZone@ Wednesday, March 30, 2005 7:42 PM

TrackBack

# Frans ci parla del MS Petshop 3.0 e i commenti sono molto...@ Thursday, March 31, 2005 5:55 AM

TrackBack

# Stored Procedure Blah Blah@ Thursday, March 31, 2005 10:34 AM

TrackBack

# Stored Procedure Blah Blah@ Thursday, March 31, 2005 10:35 AM

TrackBack

# re: MS Petshop 3.x, your thedailywtf.com material times 1000@ Thursday, March 31, 2005 12:22 PM

you and i need to start our own site. pissedoffcoders.com.

brady gaster

# re: MS Petshop 3.x, your thedailywtf.com material times 1000@ Thursday, March 31, 2005 12:27 PM

Sounds good :)

Frans Bouma

# re: MS Petshop 3.x, your thedailywtf.com material times 1000@ Thursday, March 31, 2005 12:31 PM

pissedoffcoders.com is available according to Network Solutions. :-)

Sean Chase

# re: MS Petshop 3.x, your thedailywtf.com material times 1000@ Thursday, March 31, 2005 12:33 PM

If performance was the goal, then they acheived it. Let's face it, good design will *sometimes* come at a cost of performance... albeit minimal, IMVHO, compared to the sanity you will save while maintaining the code going foward.

I'm sure you're well aware of this though since, after all, O/R mapping is pretty much the epitome of examples when it comes to this kind of tradeoff. ;)

Drew Marsh

# re: MS Petshop 3.x, your thedailywtf.com material times 1000@ Thursday, March 31, 2005 12:48 PM

It would be interesting to compare it to the Java version in that regard.

Senkwe

# re: MS Petshop 3.x, your thedailywtf.com material times 1000@ Thursday, March 31, 2005 2:27 PM

Have you ever looked at non-example code that comes out of Microsoft? Like the old packaging and deployment wizard in VB6? Some of that stuff is scary bad too.

You have to realize that the group that's always talking about the proper way to write code is a completely different group than the groups that are WRITING code. hehehe. Great design only gets you so far, then you have to bow to the gods of performance and perceived performance. :)

Scott

# re: MS Petshop 3.x, your thedailywtf.com material times 1000@ Thursday, March 31, 2005 2:39 PM

It's not an example, it's just marketing.

Look at the Java version of the Petshop...

As Marsh pointed out good designs comes often at a tradeoff with performance, and the purpose of the MS Petshop was to outperforms Java, which suffers from prejudices of being "too" slow (doing what?)...

Andrea Sansottera

# re: MS Petshop 3.x, your thedailywtf.com material times 1000@ Thursday, March 31, 2005 5:24 PM

Hi Frans,

Looking forward to seeing your port. It will also come in handy for all llblgen users out there to see how best to use llblgen with an asp.net application.

Will you be adding an example of webservice support?

Thanks,

John

John Mandia

# re: MS Petshop 3.x, your thedailywtf.com material times 1000@ Thursday, March 31, 2005 5:27 PM

I always wondered how an on-line pet store would ship a saint bernard.

Richard P

# re: MS Petshop 3.x, your thedailywtf.com material times 1000@ Thursday, March 31, 2005 8:49 PM

They got so much crap for the first release by Vertigo Consulting that they tried to be more OO but really only showed that they do not have a good handle on what is a decent OO example. I scratched my head about this thing quite a lot when it first came out. That whole business with having the object model all seperate off by itself was odd. Thats just one item. Anyway I think its fantastic that your creating a bigger sample than whats avail for LLBLGen thus far. It definetly will cut down on support calls from me :-) and others. Thanks for doing that.

Thomas Wagner

# RE: MS Petshop 3.x, your thedailywtf.com material times 1000@ Thursday, March 31, 2005 9:57 PM

I think petshops was implemented to prove that whatever Java can do, .NET can do better. I dont think it was meant to be a "blueprint" in the true sense. For that kind of implementation, you are referred (usually) to Patterns and Practices (http://www.microsoft.com/resources/practices/default.mspx).

Girish

# re: MS Petshop 3.x, your thedailywtf.com material times 1000@ Friday, April 01, 2005 1:11 AM

You don't want to get into the discussion of the .net vs Java versions on petshop. If you do there are a few million web pages that can be quickly found.

Boiled down, and this will probably start fights, it comes to this.

The Java version was designed as a training exercise, Sun has a huge document using it for training, for teaching it is good but has some poor choices for application performance. A couple of companies making Java web application servers used it as a benchmark test between themselves. Same code, same hardware, different web application servers.

The .net version was designed totally for speed. It was then used to show the speed between similar purposes; ignoring the reason code was written.

will dieterich

# re: MS Petshop 3.x, your thedailywtf.com material times 1000@ Friday, April 01, 2005 2:30 AM

My thoughts exactly.

Paul Gielens

# Microsoft Facing a Classic Innovator's Dilemma@ Friday, April 01, 2005 8:30 AM

For those of you wondering why Microsoft is moving in this direction, it seems obvious to me that they are facing an Innovator's Dilemma. They are being forced up-market by open source tools and innovative add-ins like ReSharper. More at http://idea-log.blogspot.com/2005/04/microsoft-facing-classic-innovators.html

Rob Harwood

# re: Why Microsoft makes a mistake with the MSDN subscription changes.@ Friday, April 01, 2005 10:07 AM

"However, for now - *nothing has changed*"

It is a change, we used to get all new tools & servers with MSDN Universal. This is probably only the first item to be dropped from the not-so-UNIVERSAL-anymore msdn subscription, I guess this could be a trend as Microsoft still wants to make the same amounts of money.

And if it is a trend, it obviously is a very good reason to put more time in alternative solutions.

Peajay

# MVP : So what the fuck with Ireland :-()@ Friday, April 01, 2005 11:31 PM

TrackBack

# MVP : So what the fuck with Ireland :-()@ Friday, April 01, 2005 11:32 PM

TrackBack

# re: MS Petshop 3.x, your thedailywtf.com material times 1000@ Saturday, April 02, 2005 4:53 AM

"Looking forward to seeing your port. It will also come in handy for all llblgen users out there to see how best to use llblgen with an asp.net application.

Will you be adding an example of webservice support? "
Yes, as full support for webservices is implemented in 1.0.2004.2, and the petshop code has a webservice so I'll add that too :).

Frans Bouma

# re: MVP Again!@ Saturday, April 02, 2005 5:56 AM

Congrats Frans, well deserved just like last year :)

Jeroen van den Bos

# re: MVP Again!@ Saturday, April 02, 2005 6:29 AM

One year already! That's fantastic, we'll you get three in a row?

Gareth Brown

# This years summit is going to rock!@ Saturday, April 02, 2005 6:31 AM

TrackBack

# re: MVP Again!@ Saturday, April 02, 2005 8:18 AM

Congratulations to you too, "brother"

Fabrice

# re: MVP Again!@ Saturday, April 02, 2005 8:23 AM

Congrats!

A collague of mine has been awarded the first Dutch Biztalk MVP.

VictorV

# re: MVP Again!@ Saturday, April 02, 2005 8:52 AM

Congrats. Me too.

Bil Simser

# re: MVP Again!@ Saturday, April 02, 2005 9:38 AM

Congrats!

Raymond Lewallen

# re: MVP Again!@ Saturday, April 02, 2005 11:34 AM

Thanks all, And congratulations back to all renewed MVP's as well! :D

Frans Bouma

# re: MVP Again!@ Saturday, April 02, 2005 11:50 AM

Congrats, Frans :)

James Crowley

# re: MVP Again!@ Saturday, April 02, 2005 12:05 PM

Congrats!

Wallym

# re: MVP Again!@ Saturday, April 02, 2005 12:24 PM

THis day is full of good news! Congrats my friend!

Bill

# re: MVP Again!@ Saturday, April 02, 2005 2:11 PM

Congrats man !! :)

Sahil Malik

# re: MS Petshop 3.x, your thedailywtf.com material times 1000@ Saturday, April 02, 2005 2:52 PM

Can't wait ;-)

John

John Mandia

# re: MVP Again!@ Saturday, April 02, 2005 3:24 PM

Congratulations! I hope to see you at the MVP Conference!

Douglas Reilly

# re: MVP Again!@ Saturday, April 02, 2005 6:03 PM

Congratulations, Frans!

Kip Kniskern MSN.com MVP

# Is .NET really worth it anymore?!@ Sunday, April 03, 2005 3:32 AM

UGH! The more time I spend in .NET the more I think it sucks. I've been doing .NET since VS.NET 2002. I've done Java (JBuilder, TogetherSoft, Netbeans, and Eclipse).

Swing is getting better every release, it's not half bad now... winorms sucks and is buggy. ASP.NET is much better than winforms, better architected better thought out...

The one hope I had was that everything would be lovely when .NET 2.0 / Avalon / TeamSystem came out. Now I am still thinking they DON'T GET IT.

Developers are the key to your platform... if you have the developers you have the OS / Server market!

Maybe Mono is the answer, I don't know... Java is more robust and they have OpenGL accelerated widgets in Java 5.0 SDK (not on by default).

It would be simple for Microsoft to smash Java and deal a large blow to linux by open sourcing their developer platforms and giving away the goodies.

Avalon is a great fresh start for the desktop and interesting for the web as well... we are all drooling to use this cool stuff. But you are too slow MS!!!

candy man

# re: MVP Again!@ Sunday, April 03, 2005 4:36 AM

Congratulations Frans and all other MVP's!

Pieter Joost van de Sande

# re: MVP Again!@ Sunday, April 03, 2005 9:18 AM

Congrats Frans :-)

Ernst Kuschke

# re: MVP Again!@ Sunday, April 03, 2005 8:09 PM

Congrats Frans!! :)

Darrell

# re: MVP Again!@ Monday, April 04, 2005 3:11 AM

Mooi man!

Ryan Heath

# Comments on Codezone@ Monday, April 04, 2005 12:51 PM

TrackBack

# re: MVP Again!@ Monday, April 04, 2005 4:03 PM

Congratulations, Frans!
Does anyone know how many Dutch MVP's there are at this moment?

Dion

# re: CodeZone? Another marketing driven community doomed to fail.@ Tuesday, April 05, 2005 6:01 AM

I do agree with you... But I have to add that I find MSDN is an invaluable source of information. It's one of the first source I check in case of a problem. Ok, I admit that I use google to search (err. find) something on the MSDN site... Also, this is more a source for someone that almost already knows what he is looking for...

Jonx

# re: CodeZone? Another marketing driven community doomed to fail.@ Tuesday, April 05, 2005 3:55 PM

Great observations. It certainly appears that something from the developer community itself is required.

Jonathan Cogley

# re: MS Petshop 3.x, your thedailywtf.com material times 1000@ Tuesday, April 05, 2005 9:40 PM

yay! Petshop.LLGLGen Pro. :)

bonder

# re: MVP Again!@ Wednesday, April 06, 2005 2:22 PM

Congrats! You definately deserve it -- you're one of my personal heros ;-)

Beth Massi

# re: MVP Again!@ Thursday, April 07, 2005 5:18 AM

thanks all! :)

It's my pleasure, Beth :)

Frans Bouma

# not so cold@ Thursday, April 07, 2005 2:32 PM

i don't think i'm quite so cold to this as you guys as some of you guys. we all have known that MS is NOT open source, and never have been. so, in an era where they look to introduce NEW tools, more tightly coupled to methodologies that companies might use, it seems very logical to me that they WOULD charge more.

there is a huge side bar to that, however: i don't know of anyone so far that is asking to pay more.

i mean, these tools and the level of integration that can be obtained and, supposedly, the amount of savings that could be realized work really well in large-scale projects. MS is even trying to address the agile community in templating the process (yet leaving it customizable).

but my experience with agile in the enterprise has been in smaller projects, smaller teams, smaller schedules. when you factor in the price of this toolkit upgrade, it pushes the project through the roof.

right now the contract i'm serving has 400+ MSDN subscriptions. now, i'm sure they get a huge discount on it, and buy it through an open license and all that, so let's just assume we're working with percentages. if there really is a 40-60% increase in tool costs, will they be able to sustain that? i don't know, to be honest.

lets also consider that this shop indeed DOES have architects and analysts and devs and tests. fine. so, where does VSTS come into play? well...when looking at the entire process, it gets the organization a lot closer to a single-vendor solution. that alone has a big advantage (even for myself as an ISV). it means a one-stop shop to handle the better part of the toolset required to satisfy the methodologies they use. this might be attractive.

if nothing else, MS has left us with another huge business case to write: does their model of integration, automation and support end up with a lower TCO than a myriad of open-source tools coupled with our MSDN subscription?

though i don't like the prices, i really like where they're going. i hope they rethink the model, but i'm not cashing out just yet.

James Chambers

# re: Why Microsoft makes a mistake with the MSDN subscription changes.@ Thursday, April 07, 2005 4:35 PM

"It would be simple for Microsoft to smash Java and deal a large blow to linux by open sourcing their developer platforms and giving away the goodies."

wasn't that what java and linux proponents were claiming when commenting on overtaking MS?

giving away your IP does not a bill (Bill) payment make.

James Chambers

# re: MVP Again!@ Friday, April 08, 2005 7:21 AM

Congrats Frans!

You make me proud to be Dutch!

Ries Spruit

# re: ASP.NET without Web Projects@ Friday, April 15, 2005 6:28 AM

You can download the "special" version of TortoiseSVN that uses _svn instead of .svn if you like.

Also, if you want Subversion integration with VS then check out AnkhSVN. It too can also use _svn if you so desire, just edit the config file. It works pretty well apart from trying to rename files with codebehind.

[)amien

Damien Guard

# SQL存储过程自动生成@ Friday, April 15, 2005 7:02 AM

Ping Back来自:blog.csdn.net

TrackBack

# SQL存储过程自动生成@ Friday, April 15, 2005 7:03 AM

Ping Back来自:blog.csdn.net

TrackBack

# re: ASP.NET without Web Projects@ Friday, April 15, 2005 8:58 AM

There's a trade-off. If you use Fritz's class library method, you do lose some of the visual designer functionality. I used Fritz's method (actually Duckie's modified version) for a while, but went back to the regular way because I preferred having that functionality.

Richard Dudley

# re: ASP.NET without Web Projects@ Friday, April 15, 2005 9:02 AM

Damien: I know, but I have a lot of working folders already with .svn, and I can't have two versions installed.

Richard: which functionality do you mean? I haven't ran into it yet. (ok the "set as start page" feature, well... I can live without that :))

Frans Bouma

# re: ASP.NET without Web Projects@ Friday, April 15, 2005 11:11 AM

I'd be curious to know what functionality is lost as well.

We've been using the class library model for web projects for a long time now, never felt that we were "losing" anything.

I'll admit it's possible though - truth be told, vs.net 2003 mangles HTML so bad that we try to avoid actually using the graphical designer.

Jay Oliver

# re: ASP.NET without Web Projects@ Friday, April 15, 2005 11:38 AM

"truth be told, vs.net 2003 mangles HTML so bad that we try to avoid actually using the graphical designer"

That pretty much sums it up right there. No need to use the grahpical designer when doing web projects at all...it's an excercise in futility and wasted time as soon as you forget to hit Ctrl+S before intentionally (or worse, unintentionally) hitting the "Design View" tab.

The only times I ever find the graphica designer useful are for "quick-and-dirty" samples and what not. Otherwise, the design view is to be avoided like the plague.

Charles Chen

# re: ASP.NET without Web Projects@ Friday, April 15, 2005 12:23 PM

Frans, thanks, you rock for finding this. I gave up hope of this long ago, and thus far I've seen articles talking about the library method but didn't go the extra step of including the wizard functionality (ie. Add New Web Form.)

So this solves that problem, and it also solves the setup nightmares of developing web apps in a group environment with VS-integrated source control.

And it solves the horrific way that VS deals with source control on web projects. VS-integrated source control insists on putting web projects hierarchically at the same level as the solution folder. Try to switch the source control structure around and rebind, and you're greeted with "can't load web project" every time you load that solution (which can be worked around by removing and reloading those projects... huge hassle). I'm a big fan of keeping the source control structure a mirror of the file system structure, and it was virtually impossible to do this with VS-integrated source control on web projects.

And Charles, about the visual designer, it is an real abomination to work with for the first little while, but if you learn to cooperate with it instead of against it, it's actually not too bad. And I even come from the designer dream world of Dreamweaver, and I'm not even aching to go back. This is especially if you wean yourself from being heavily dependent on old school ways of layout design. If you build everything out of the simple, as-nature-intended html elements, then take care of all the formatting and positioning with CSS, then it's an absolute breeze to work with.

(Except for the occasional lost event bindings.)

I'm getting with all our employees this next week to convert all of our projects over after I do some more testing on my end.

Ryan Whitaker

# re: ASP.NET without Web Projects@ Friday, April 15, 2005 1:18 PM

Frans,

We're using the special "_svn" version of Subversion with no problems. All you have to do is rename all of the ".svn" folders to "_svn". You could write a little script that would do it. Run it once and you're done.
I just made sure I had the latest version of my code from the repository, did a find for all ".svn" folders, delete them, and then re-checked out my changes. Nooooooo problem. :) I had a problem using Fritz's method, non-visual designer related, but I don't remember what it was. Helpful right? :(

Scott

# re: ASP.NET without Web Projects@ Friday, April 15, 2005 5:51 PM

You might want to check out Ankh. It provides most of SVN's functionality through VS.NET integration. Don't think it uses SCC, so it might be immune to some of it's drawbacks.

http://ankhsvn.tigris.org/

Ryan Rinaldi

# re: ASP.NET without Web Projects@ Friday, April 15, 2005 11:41 PM

Frans,

I've also tried using Vault with all the IDE integration turned off, using the Vault client instead. In my brief tests, it worked well. I put Vault into "CVS Mode", so that all files were writable. As I saved changes from the IDE, the Vault client would detect the changed files and add them to it's list of changed files. Once I was ready, it was just one button click in Vault to (atomically) check in all my changes.

John Rusk

# re: ASP.NET without Web Projects@ Saturday, April 16, 2005 4:07 AM

Thanks for the info John, I didn't know that. :)

Frans Bouma

# re: No nullable types in VB.NET 2.0 ?@ Saturday, April 16, 2005 5:54 AM

Hoi Frans,

Volgens het VB team zou het zo kunnen:

ByVal id As Nullable(Of Integer)

zie http://blogs.msdn.com/vbteam/archive/2004/05/28/143813.aspx

Bye,

Ward

Ward

# re: No nullable types in VB.NET 2.0 ?@ Saturday, April 16, 2005 5:58 AM

Dank je, Ward :)

Ik had ook al zoiets gezien even later. Dus kortweg komt het er op neer dat het wel aanwezig is, maar je moet het generic Nullable struct gebruiken ipv de operators. Maakt me verder niet uit ALS het maar werkt :D.

Frans Bouma

# re: No nullable types in VB.NET 2.0 ?@ Saturday, April 16, 2005 6:17 AM

http://www.panopticoncentral.net/archive/2004/06/04/1180.aspx

Daniel Moth

# re: LLBLGen Pro v1.0.2004.2 released!@ Monday, April 25, 2005 9:39 AM

Congratulation!
It's my favorite tool in my toolbox.

.Net Adventures

# re: LLBLGen Pro v1.0.2004.2 released!@ Monday, April 25, 2005 2:53 PM

Wow, great work Frans.

Senkwe

# .::Szőkelizer 157::.@ Tuesday, April 26, 2005 12:56 AM

<p>&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://weblogs.asp.net/fbouma/archive/2005/04/25/404152.aspx&quot; target=&quot;_blank&quot;&gt;LLBLGen Pro v1.0.2004.2 released!&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.designerslove.net/2005/04/m

TrackBack

# Misc@ Sunday, May 01, 2005 12:37 AM

Misc

TrackBack

# NotNull@ Tuesday, May 03, 2005 11:05 PM

TrackBack

# re: LLBLGen Pro v1.0.2004.2 released!@ Wednesday, May 04, 2005 10:12 AM

Is the generated code fully compatible with existing versions? Do I have to change my previous codes?

Thanx for such a cool tool ;)

Hakan Eren

# re: LLBLGen Pro v1.0.2004.2 released!@ Wednesday, May 04, 2005 11:32 AM

Yes, fully compatible, you can regenerate teh code and your own code will work as before :)

Frans Bouma

# Dynamic SQL@ Friday, May 06, 2005 8:11 AM

TrackBack

# re: MSDN Universal gets team system server!@ Friday, May 13, 2005 4:36 AM

Next we need to get the Code Profiling, Static Analysis, Unit Testing, Code Coverage into Visual Studio 2005 Professional with MSDN Premium Subscription. See below:
http://msdn.microsoft.com/howtobuy/vs2005/subscriptions/compare/
Spread the word. Maybe we'll luck out again. If Microsoft is serious about letting developers create better software, they will bundle those tools with the lower subscription levels.

css

# re: MSDN Universal gets team system server!@ Friday, May 13, 2005 7:00 AM

They should just get rid of the different role editions. I've never worked anywhere which had such clean cut definitions in roles.
I NEED load testing as a developer.
I can probably get away without virtual server (I have it already from msdn universal anyway).

I can probably also do without the 'architect' parts too - I'm sure somebody else will feel they're doing a good job by generating deployment scenarios all day.

So to sum up, why don't they just migrate the test role into the developer role.
That would keep me happy :)

i/Noodle

inoodle

# re: (Dutch) LLBLGen Pro presentatie op volgende DotNED meeting@ Saturday, May 14, 2005 1:43 PM

Cool, I'll try to make it!

Paul Gielens

# re: PS3 and PS3 games reveiled.@ Tuesday, May 17, 2005 8:56 AM

[quote]One major feature of the PS3 is that it can play any game from the past, the XBox 360 only a subset.[/quote]

subset?

So the rumours I've heard that you can load and run *any* XBox Classic game on the XBox360 platform using the rumoured Virtual XBox (based on a heavily modified VPC7 for Mac) application aren't true?

Cyriel

# re: PS3 and PS3 games reveiled.@ Tuesday, May 17, 2005 8:58 AM

WOW.

I almost decided to buy an XBox 2 when they come out, I think these vids (and the specs) just changed my mind.

Shannon J Hager

# re: PS3 and PS3 games reveiled.@ Tuesday, May 17, 2005 9:13 AM

That's what I read on the various gaming sites: a subset. They said: "top selling xbox games, via an emulator". It might be that will be 'all' games, or it might be that will be '10' or 50. What their problem is is that the GF3 hardware in the current XBox is incompatible with the ATI card in the XBox 2 for the special features in the GF3 that's in the XBox, and for example Halo uses those features a lot. So an emulator has to be written. Though it might be, they can emulate it pretty generically, don't know.

Frans Bouma

# re: PS3 and PS3 games reveiled.@ Tuesday, May 17, 2005 10:32 AM

I haven't verified this, but one of my friends that has been following PS3 said quite a few devlopers have pulled games that were going to be for Xbox360 and are putting them solely on PS3.

I love Halo, but I agree with Shannon that the above vids are definitely making me lean more towards PS3. That and Microsoft always finds a way to either make things more costly or have "issues" (such as needing to subscribe to Xbox-Live to get the updates and other downloads).

Justin

# re: PS3 and PS3 games reveiled.@ Tuesday, May 17, 2005 11:19 AM

You really should check out the movies too : http://ve3d.ign.com/articles/614/614953p1.html

The Killzone movie is really cool...

Saber Karmous

# re: PS3 and PS3 games reveiled.@ Tuesday, May 17, 2005 2:27 PM

My opinion is, given that both Sony and Nintendo have announced backwards compatibility, the Xbox 360 had better emulate at least 90% of their current library. That is a random number that I completely made up. Nintendo has never had backwards compatibility before. If Microsoft doesn't, they are going to lose a lot of mindshare to Sony and Nintendo. It removes a lot of the reasons for not upgrading to a new console.

Scott

# re: (Dutch) LLBLGen Pro presentatie op volgende DotNED meeting@ Tuesday, May 17, 2005 4:12 PM

Bummer!
Vol.

Rutger

# re: (Dutch) LLBLGen Pro presentatie op volgende DotNED meeting@ Tuesday, May 17, 2005 4:16 PM

Vol? Whoa! Dat is de eerste keer volgens mij.

Uhoh. *pressure lands on shoulders*. :D

Frans Bouma

# re: (Dutch) LLBLGen Pro presentatie op volgende DotNED meeting@ Wednesday, May 18, 2005 5:55 AM

Ik ben heel benieuwd, maar ik moet zeggen dat ik ga omdat ik zag dat jij spreker was :)

Heel veel succes!

Questa

# re: (Dutch) LLBLGen Pro presentatie op volgende DotNED meeting@ Wednesday, May 18, 2005 6:00 AM

Heh :)

Het is maar een half uurtje. Ik ga er zoveel mogelijk in proberen te stampen, het wordt vast leuk :)

Frans Bouma

# re: PS3 and PS3 games reveiled.@ Wednesday, May 18, 2005 6:01 AM

Was that Renowa I saw in the FF XII trailer?

The Final Fantasy Trailer made me thinking about buying the PS3 instead of the Xbox 360...

Questa

# Patent Awarded for O/R Mapping Technology@ Wednesday, May 18, 2005 12:17 PM

TrackBack

# re: Uhoh, someone got the patent on O/R mapping...@ Wednesday, May 18, 2005 5:47 PM

And given that the "inventors" (sic) include Luca Bolognese and Andrew Conrad, it likely belongs to Microsoft.

Sure, they "invented" (rather, developed) ObjectSpaces, fair enough. But they didn't invent the underlying "principles" described in the patent. That is so ridiculous.

Software patents not only ought to be prevented in Europe, they should also be forbidden in the rest of the world. Honestly, what are they thinking?

Phil

# re: Uhoh, someone got the patent on O/R mapping...@ Wednesday, May 18, 2005 5:54 PM

Lol, that's laughable. I searched for a few names of the "inventors", and from brief inspection they seem to be Microsoft staff.

They must be quite proud of themselves for inventing the whole Mapping Architecture thing. How very very clever and original ;-)

MS probably only took the patent out for defensive measures, it's just so very sad that companies have to waste time and money on such things.

Tobin Harris

# re: Uhoh, someone got the patent on O/R mapping...@ Wednesday, May 18, 2005 6:00 PM

Interesting to see how all the "Inventors" seem to MSFT employees ... hmmmm

Ben

# re: Uhoh, someone got the patent on O/R mapping...@ Wednesday, May 18, 2005 9:26 PM

One word - Ludicrous.

Jónas Antonsson

# re: Uhoh, someone got the patent on O/R mapping...@ Wednesday, May 18, 2005 11:22 PM

doesn't prior art (wilson or mapper, your stuff, LLBlgen, and so forth) completely invalidate the patent?

its my understanding that it does, if the bonehead ever tries to extort money...

Eric Newton

# re: PS3 and PS3 games reveiled.@ Wednesday, May 18, 2005 11:35 PM

Be careful, except for the EA boxing and Unreal 2007 demos, all those other videos are pre-rendered and not real-time in game. This comes straight from Mark Reign's mouth[1], so I'm not just trying to stick up for the 360.

Later,
Drew

[1] http://ve3d.ign.com/articles/615/615152p1.html?ui=rssFeed

Drew Marsh

# re: PS3 and PS3 games reveiled.@ Thursday, May 19, 2005 1:12 AM

Hehehehe, all PS3 minded people here.

I'm not buying any of the consoles, but if I would, I'd buy an XBox for sure.

For example, Final Fantasy is going to be XBox only! Forget about the old games, who's going to play them when you've got the new games that look 500% better and can do way, way more in gameplay?

Everyone can use Live! and if you pay for an account, you can even do much much more.

You can use your XBox as a small media center, connect the PSP to it! :)

Seriously, XBox over PS3 any day of the week! :)

But now I'm going to play my MMORPG on pc. How's that for a console! Ha!

Dennis van der Stelt

# re: Uhoh, someone got the patent on O/R mapping...@ Thursday, May 19, 2005 2:29 AM

No, LLBLGen Pro or wilsonormapper aren't prior art, Objectspaces is quite old. The real prior art is in the java world and smalltalk world. O/R mapping is pretty old, and widely documented. You can't make me believe MS thought of it before the java guys did.

It will be interesting to see what the big guys at Apple, Oracle and Sun will have to say about this 'patent', because their products all violate it.

More ironic is that the Objectspaces wasn't inventive in any way. Everything in objectspaces as presented in 2003 was already done elsewhere years ago.

Luckily it's indeed MS who got the patent, which uses it for defense, but what if they feel threatened by Java that much that they will put this patent into gear to crack Hibernate's strong grip on the java world?

Frans Bouma

# re: PS3 and PS3 games reveiled.@ Thursday, May 19, 2005 2:56 AM

@Dennis van de Stelt
Is Final Fantasy really going to be Xbox only?

Questa

# re: Uhoh, someone got the patent on O/R mapping...@ Thursday, May 19, 2005 6:02 AM

Maybe they fear NHibernate ( http://www.nhibernate.org ), because they have seen how Hibernate came from nowhere and became one of the de facto standards in Java world.

Szokelizer

# re: Uhoh, someone got the patent on O/R mapping...@ Thursday, May 19, 2005 8:42 AM

Cases like this one are almost arguments in favor of patents. They make companies who claim them so stupid...

Fabrice

# re: PS3 and PS3 games reveiled. --Final fantasy@ Thursday, May 19, 2005 9:29 AM

"Is Final Fantasy really going to be Xbox only?"

Nope.

What is happening is that they are going to sell Final Fantasy IX(the MMORPG one) for XBOX2.

BTW the latest talk on various game boards is that the "backwards compatability" that MS says will be in XBOX360 will only be for thoses games that are recompiled for that console.

will dieterich

# re: PS3 and PS3 games reveiled.@ Thursday, May 19, 2005 10:00 AM

@will dieterich
Looking forward to Final Fantasy IX on the Xbox then, but like the normal RPG's more than the MMORPG's.

Hope there is a change that a normal Final Fantasy will come out on the Xbox360 so I don't need to buy a PS3...

Questa

# re: Uhoh, someone got the patent on O/R mapping...@ Friday, May 20, 2005 5:44 AM

I hope you have read some of the other database related patents in freshpatents.com... there is really a lot of stuff to laught at

Piotrek

# [学习]自动产生SQL SERVER存储过程和T-sql@ Friday, May 20, 2005 10:24 PM

Ping Back来自:blog.csdn.net

TrackBack

# re: Uhoh, someone got the patent on O/R mapping...@ Saturday, May 21, 2005 2:40 PM

So hopefully this won't have any effect on the beloved LLBLGen mapper.

This patent stuff is f~cking ridiculous

Bill

# re: (Dutch) LLBLGen Pro presentatie op volgende DotNED meeting@ Saturday, May 21, 2005 2:40 PM

I wish I knew Dutch, this looks like a cool post

Bill

# re: Uhoh, someone got the patent on O/R mapping...@ Saturday, May 21, 2005 3:03 PM

@bill: I hope not either, but for now I think we're all pretty safe in O/R mapper land :)

Frans Bouma

# re: (Dutch) LLBLGen Pro presentatie op volgende DotNED meeting@ Thursday, May 26, 2005 4:36 PM

Was wel wat aan de korte kant, had persoonlijk meer van LLBLGen willen zien.

Anyway, was weer de moeite waard om aanwezig te zijn.

// Rutger

# re: (Dutch) LLBLGen Pro presentatie op volgende DotNED meeting@ Thursday, May 26, 2005 5:07 PM

Ja ik had maar een half uur gekregen :) Dus presentatie en demo waren dus erg kort. Daarom heb ik eerst ook wat over de techniek verteld, anders zit je zo in het luchtledige te vertellen. :)

Frans Bouma

# re: (Dutch) LLBLGen Pro presentatie op volgende DotNED meeting@ Thursday, May 26, 2005 5:47 PM

Was een nette presentatie, met een hoop minder bugs/fouten dan de spreker na je ;-)
Alleen mag je nog wel wat meer trots zijn op een mooi product (en dat uitstralen). Zo'n avond is natuurlijk toch ook een beetje een verkooppraatje.

Johan

# re: DotNED meeting yesterday@ Friday, May 27, 2005 2:18 PM

Forget about you .. Who is the hot chick in the front?

Sahil Malik

# re: DotNED meeting yesterday@ Friday, May 27, 2005 2:32 PM

Haha :D Honestly, I don't know, but I DO know that this was the first time a DotNED meeting had any girls in the audience :P (and even good looking ones too! :D)

Frans Bouma

# re: DotNED meeting yesterday@ Sunday, May 29, 2005 12:58 PM

I can't see that they're really good looking, but I was a little suprised :)

Mathieu Roseboom

# re: DotNED meeting yesterday@ Sunday, May 29, 2005 1:03 PM

Forgot to ask :)

Would you be so kind to put your presentation on your blog?

Thanks!

Mathieu

# re: (Dutch) LLBLGen Pro presentatie op volgende DotNED meeting@ Sunday, May 29, 2005 1:09 PM

Ik vond het ook een goede presentatie. Misschien kan je, net zoals hierboven al aangegeven werd, iets werken aan je uitstraling.

Laat zien dat je een goed product hebt neergezet, en straal dat dus ook uit :) Iets meer richting publiek praten, en iets minder richting de beamer/laptop :)

Mathieu

# Dotned generated code@ Monday, May 30, 2005 2:37 AM

Last thursday evening, may 26th, we had a great meeting of the Dutch dotned user group. Sander already...

TrackBack

# re: (Dutch) LLBLGen Pro presentatie op volgende DotNED meeting@ Monday, May 30, 2005 4:36 AM

Mja, ik ben natuurlijk geen marketeer, dus een echte marketing-presentatie houden, dat zal nooit wat worden vrees ik :). Ik geef ook zelden presentaties overigens, dit was de 1e in jaren.

Maar bedankt voor de opbouwende kritiek, ik zal het meenemen voor een volgende keer :).

Ik moet wel zeggen dat ik gewoon teweinig tijd had voor de presentatie, slechts een half uur (incl demo, wat al langer werd). Ik had minimaal 2 uur kunnen demo-en zonder 1 keer iets te herhalen, en dan kun je in feite niets anders dan alleen wat hoofdlijnen vertellen, wat ik dan weer jammer vind.

Frans Bouma

# re: DotNED meeting yesterday@ Monday, May 30, 2005 4:37 AM

I'll do that today. :)

Frans Bouma

# re: The DotNED meeting@ Tuesday, May 31, 2005 3:45 AM

Feeling said because I missed it. The slides look very interesting but I mis you explanation :)

Questa

# re: (Dutch) LLBLGen Pro presentatie op volgende DotNED meeting@ Wednesday, June 01, 2005 4:39 PM

Je kon idd merken dat je te weinig tijd had. En dat was wel jammer, had graag meer gezien van je applicatie.
Alhoewel ik nog studerende ben, vond ik het zeer interessant om gewoon eens te horen van professionals (ik ben tenslotte maar een .NET-hobbyist, aangezien ik op school geen .NET krijg)
hoe zij tegen bepaalde dingen aan kijken. Zoals je in het begin begon over de drie verschillende methoden (table, entity en uh domain geloof ik) dat vond ik heel interessant.

Mathieu

# re: The DotNED meeting@ Sunday, June 05, 2005 1:14 AM

So you caught wind of my "Frans 'The Jackal' Bouma" post. I was going to dub you the .NET Jackal b/c there's a movie where this dude the Jackal, an international assasin, is like the man and he's never been seen by anyone. (in the movie, the Jackal was the bad guy but he was a totally cool bad guy - so I only liken you to him in the cool way ;-) ) So even the CIA doesn't have his picture. Well, no one has ever seen you until Roland tipped me off about the Frans siting last week. So I heard you were tall even by Dutch Standards - and if you were a movie star, you could play James Bond, Dracula or the Russian Agent in the Bourne Supremacy.

BTW, your presentation rocks - I wish I was there. We really need you to do a tour in the States ;-)

Bill

# re: Keyboard error: press F1 to continue@ Sunday, June 05, 2005 8:42 AM

"No keyboard present" ... go ahead, hit F1 to prove me wrong.

AndrewSeven

# re: Keyboard error: press F1 to continue@ Sunday, June 05, 2005 2:55 PM

2x30GB Hard disks, ha? :)

Someone

# re: Keyboard error: press F1 to continue@ Sunday, June 05, 2005 3:38 PM

I must say, it one of the most errors I see daily :(

Somehow the keyboards get unhooked pretty easily at those computer at university :)

Gert Van Gool

# re: Keyboard error: press F1 to continue@ Sunday, June 05, 2005 9:04 PM

I assume that this message makes sense in one case. If pluging in the keyboard, then pressing F1 gets the machine going again.

It's not as bad as it seems ;)

Victor Boctor

# re: Keyboard error: press F1 to continue@ Monday, June 06, 2005 3:30 AM

It's allways funny to see such error messages :)

Questa

# re: The DotNED meeting@ Monday, June 06, 2005 5:30 AM

Hehe Bill :D

If someone coughs up the cash, a us tour would be great :).

Frans Bouma

# re: Keyboard error: press F1 to continue@ Monday, June 06, 2005 9:04 AM

Award's BIOS will also output a message with something to the affect of "video card not present" if a card is not found.

Care to know how I found this out? ;)

Anonymous

# re: Keyboard error: press F1 to continue@ Monday, June 06, 2005 9:10 AM

"Care to know how I found this out? ;)"
Of course! :)

Frans Bouma

# re: PS3 and PS3 games reveiled.@ Monday, June 06, 2005 4:16 PM

Both are great consoles, but im gonna wait about three or four months before buying one because
a)the price will go down a bit and
b)because it will be clearer which is better, based on what other buyers will say

Who

# No more stored procedures...YAY!@ Thursday, June 09, 2005 9:38 AM

During a recent upgrade to an application Ive been working, all but one of the stored procedures was removed. What?!?! Indeed, data access can happen without stored procedures, and as referenced in some other weblog posts this may be very...

TrackBack

# re: TechEd Europe Survival Guide@ Wednesday, June 15, 2005 1:50 PM

Thanks for the links. I'm going to TechEd also - my first time :)

Peter Jausovec

# re: PS3 and PS3 games reveiled.@ Thursday, June 16, 2005 9:34 AM

my problem is that i love pc games and all xbox consoles have pc games but i also love ps2 games so its hard because ps3 will have like metal gear solid four and i loved every metal gear game we go way back but i also think that i will wait 4-5 months

crashzero999

# re: Dropping the 'I' from interface names?@ Thursday, June 23, 2005 5:52 AM

respect!
I couldn't resist commenting on the comment
http://www.bloglines.com/blog/IngoLundberg?id=6

Regards,
Ingo

Ingo

# David Baakman » I? Impl!@ Thursday, June 23, 2005 8:47 AM

David Baakman &raquo; I? Impl!

TrackBack

# re: Dropping the 'I' from interface names?@ Thursday, June 23, 2005 5:08 PM

I don't know if you saw it, but Joel Spolsky wrote an interesting article concerning, among other things, Hungarian notation and how to use that. http://www.joelonsoftware.com/articles/Wrong.html

Mats Gefvert

# re: Dropping the 'I' from interface names?@ Sunday, June 26, 2005 11:28 PM

Well, if you're using Hungarian properly, you shouldn't need to change the prefix if all you change is the *type* of a variable. The prefix is supposed to document the *use* of a variable, not it's *type*. For example, the 'cch' prefix means "count of characters", it doesn't matter if it's an int, a DWORD, or even a float.

But anyway, that's kind of beside the point...

I think the I prefix is quite useful for interfaces, because it means you can have this:

namespace NS
{
public interface IFoo
{
// Methods
}

class Foo : IFoo
{
// Implement IFoo here
}
}

It means you can have a public interface and private implementation in the same namespace without naming conflicts anywhere ('course, it doesn't have to be public/private like that). Otherwise, you'd have to postfix "Impl" on your private implementation or something like that, so all you end up doing is trading the prefix on the interface to a postfix on the class name...

Dean Harding

# re: TechEd Europe Survival Guide@ Monday, June 27, 2005 2:11 AM

Hi Frans,
I'll definitely drop by. From what I've heard about ATE, you will have to make a lot of hours at the stand. It will be hard to miss you there.
See you soon.

Alex

Alex Thissen

# re: TechEd Europe Survival Guide@ Monday, June 27, 2005 3:11 AM

12 hours in 4 days. Not that bad. :) And it's a good oppertunity to meet new people as well. I've new business cards, especially made for this, so it should be fun :)

See you there! :)

Frans Bouma

# re: Dropping the 'I' from interface names?@ Tuesday, June 28, 2005 4:28 PM

I think it is best to regard the 'I' as a well known abbreviation. So in the same way that it is good practise to use other prefixes and suffixes (EventArgs, Attribute etc.) I believe it is good practise to use an I prefix for an interface.

Mark Greene

# re: Dropping the 'I' from interface names?@ Friday, July 01, 2005 4:25 AM

In my opinion, abbreviations are NEVER 'good practice'. In the end it always leads to trouble.

And what's the problem with not using abbreviations? Your IDE should be capable of helping you type in the names anyway.

With regard to the I prefix: I think it's a bad idea. Why should a user of a class or interface even know what it is? You should always program TO an interface anyway.

V

# re: TechEd Europe 2005, meet me at Ask the Experts!@ Tuesday, July 05, 2005 5:09 AM

Frans, Your new LLBLGenPro pre-beta screenshots look impressive!

I am starting a big web project soon, and are very keen to purchase and use LLBLGenPro.

Just a question (from my somewhat limited understanding and knowledge) about the pre-beta screenshots: It looks like entity-relationship type diagrams. Would it not have been worthwhile to have the ability to design UML diagrams, rather than ER diagrams (similar to e.g. ObjectMapper from Mats Helander)?

Have fun at TechEd!

Regards

Willem

Willem de Ru

# re: No software patents in the EU!@ Thursday, July 07, 2005 4:11 AM

I was very happy to hear that, too. Who would've thought the European parliament might actually be good for something, for a change? :)

Chris Nahr

# re: TechEd Europe 2005, meet me at Ask the Experts!@ Friday, July 08, 2005 4:09 PM

(Sorry for the late reply).

No not UML, as UML is very specific and not a lot of people know UML. And in fact, they are entity types in a super/subtype hierarchy, like you'd have in NIAM/ORM models.

I want to keep the model abstracted away from physical elements like a 'class'.

Frans Bouma

# re: TechEd 2005, so far@ Sunday, July 10, 2005 1:14 AM

You and Andres in the same room huh? And Ingo. I don't know which one of you kicks the most a33 but well, I wish I was there ;-)

Bill

# re: TechEd Europe 2005, meet me at Ask the Experts!@ Tuesday, July 12, 2005 3:01 AM

Thanks for the feedback! What you are saying makes good sense.

Willem de Ru

# re: To all 3rd party control vendors: push MS to release hotfix 887818@ Wednesday, July 13, 2005 4:44 AM

This year at TechEd US I had the opportunity to speak with a lot of PM from various teams, C#, ASP.NET, VB.NET and so on.
I complained about lack of support and bug fixing and the only answers that I received were: "we fixed it in VS2005"...
Yes... but I want that for my crappy VS.NET not for a future version that I have to pay for...

Lorenzo Barbieri

# re: To all 3rd party control vendors: push MS to release hotfix 887818@ Wednesday, July 13, 2005 8:22 AM

I get this all the time, very irritating.

I've also had the pleasure of struggling with ImageLists and PNG alpha-values, the &"^*£ DataGrid, Theme support causing NullExceptions, lack of Themed controls (TabPage, etc..).

RichS

# re: To all 3rd party control vendors: push MS to release hotfix 887818@ Wednesday, July 13, 2005 9:05 AM

Its a good patch. Maybe the answer is to publicise it a lot.

If it is in the first results for "Cannot copy dll" on Google, then people should find it.

If enough people call and ask for it maybe the will take a more active stance.


AndrewSeven

# re: To all 3rd party control vendors: push MS to release hotfix 887818@ Wednesday, July 13, 2005 10:38 AM

This has been a huge problem for my team for quite some time, both in debug and release builds.

I have contacted Microsoft to receive the hotfix. I was told by the VS.NET 2003 C# support person that this hotfix has been requested by many developers. I was the third one today.

I was also told that we should see a service pack for VS.NET 2003 in the August/September timeframe.

Rob Bazinet

# re: To all 3rd party control vendors: push MS to release hotfix 887818@ Wednesday, July 13, 2005 11:40 AM

Add me to the list. I blogged about this on my old blog at : http://ericgharrison.com/Blog/archive/2004/10/19/446.aspx

And I blogged about it here as well: http://ericgharrison.com/Blog/archive/2004/11/15.aspx

I'm still irritated by it, and for us it's only for internal use. Can't imagine what it's like for ISV's.

Eric G. Harrison

# re: To all 3rd party control vendors: push MS to release hotfix 887818@ Wednesday, July 13, 2005 11:50 AM

Thanks Rob for the info :) They apparently see a spike in the calls, good, perhaps SOMEONE pays attention and says 'Hey,... how about starting up some regression testing on those year old patches?".

What I find strange is that they reveal a release date of the SP to a customer while we MVP's got a date under NDA...

Frans Bouma

# re: To all 3rd party control vendors: push MS to release hotfix 887818@ Wednesday, July 13, 2005 12:14 PM

AMEN !

Russ

# re: To all 3rd party control vendors: push MS to release hotfix 887818@ Wednesday, July 13, 2005 12:27 PM

No problem, thank you for the post on your blog about this. We have been struggling with this for a couple weeks now and it's a real problem to deal with especially when you have to exit VS.NET all the time.

I do hope the support people do notice a spike and escalate getting the patches tested and out the door.

I don't know if the support person just messed up and told me about a release of a service pack or not. I explicitly ask her about it and she did not hesitate with a reply.

Rob Bazinet

# re: To all 3rd party control vendors: push MS to release hotfix 887818@ Wednesday, July 13, 2005 1:42 PM

You don't have to exit VS.NET. Just close down the solution and re-open it. Sure it still takes time but it much faster than shutting the whole evironment down and restarting.

-- Robert

Robert Kozak

# re: To all 3rd party control vendors: push MS to release hotfix 887818@ Wednesday, July 13, 2005 3:08 PM

Lorenzo, i totally share your pain with this attitude. "Upgrade or perish" is total BEE-ESS. Seriously, MS - if you don't support the people who speak on how awesome your stuff is and instead tell them "if you don't like it upgrade to the new stuff we haven't released and don't support [either] and you won't have to deal with it any more" you'll end up losing them - US - too.

brady gaster

# re: To all 3rd party control vendors: push MS to release hotfix 887818@ Wednesday, July 13, 2005 4:11 PM

Actually, you do have to exit VS.NET to make the problem go away. Since devenv.exe has the lock on that file a simple close solution does not work. I have tried it many times.

-Rob

Rob Bazinet

# re: To all 3rd party control vendors: push MS to release hotfix 887818@ Thursday, July 14, 2005 4:47 AM

In my experience, renaming and then deleting the locked .dll will also help. No need to restart Visual Studio at all. Still, a great pain in the ass.

Can Use

# re: Another Must Read (tm) Article from Eric 'I told ya!' Sink@ Monday, July 18, 2005 8:36 PM

Yah, it's a good article but he's Anti-Booth Babe which is annoying.

Bill

# re: To all 3rd party control vendors: push MS to release hotfix 887818@ Tuesday, July 19, 2005 7:04 AM

It's not only VS.NET that is supported very badly. It also happens with the .NET Framework itself. This is even worse, because end-users need to request hotfixes from MS.

Microsoft describes in KB884871 that the Server property of the SqlError always returns an empty string. I investigated the code with Reflector and the property only contains return String.Empty, so this is pretty obvious. It's not a real bug, they probably didn't have time to implement it anymore. Microsoft fixed it and provides a hotfix for it, so it now works. So far, so good...

Unfortunately, they changed the internals of this class that breaks serialization. A SqlError generated by the old version cannot be deserialized with the new version anymore (and vice versa). So it becomes difficult to pass a SqlException to another system if it uses a different version.

The hotfix is included in Windows Server 2003 SP1, but not in .NET Framework v1.1 SP1. After our customers upgraded to Windows Server 2003 our software didn't work anymore. Client systems needed to be upgraded with the hotfix, but we cannot supply it. Grrrr....

Ramon de Klein

# re: VS.NET 2005 Beta 3? Why?@ Wednesday, July 27, 2005 6:46 AM

Frans, I don't intend to use the Beta2 in production even if Microsoft tell us we have the go licence! I think you mss the point here. We are in July, usually (well in my case of course) the good time to play with some new releases. What I've done is to follow the rules, installed as Microsoft recommend a version of the Beta 2(after all every minute of your life they are pushing everybody to use the Beta2), and then converting a perfectly valid web application(which is running since three years without any problems). And then running in a lot of problems, which I found major issues like the 'Exlude from project' feature missing from the current release.
I am just concerned that a lot of resources can be found on the marvels of the new framework, but nothing really serious has been done regarding the migration. Then Microsoft marketing is drumming evrywhere that the official release is for the 7th of November. I can't believe that from now to November, they can address all the issues apparently related by a lot of web developers. Check the comments on my blog to see the figures. This is why I suggested (and of course this is my opinion) that Microsoft release something in between before releasing a definitive version crippled with unsolved problems. A lot of people like me would prefer a version released in 2006 which contains a better ascending compatibility than the current one which will satisfy only some marketing dudes. After all I am not talking about migrating from VB6 to VB.Net but as the things are going on , it looks the same for me. I like the new framework, but I want a minimum of respect for all the investments I have done by promoting .Net in my company, and as the sole developer where I am working, I can't waste any time having my application broken after a conversion. I rather like to work on including the new .Net 2.0 features.

Paschal

# re: VS.NET 2005 Beta 3? Why?@ Wednesday, July 27, 2005 6:49 AM

And on another thing, I remember that a lot of articles insisted in the past to build web applications using multi project inside a solution.
The solution I tried to convert contains 6 projects, and when all this is converted to VS 2005, the solution disappear (and the notion of projects too), then everything mixed up which make no sense at all for me.
I am not a Windows developer in my job, but in Web applications, I need a perfect compatibility with everything I built since three or four years.

Paschal

# re: VS.NET 2005 Beta 3? Why?@ Wednesday, July 27, 2005 6:57 AM

And I forgot one thing! My suggestion for a Beta 3 was to test what Scott Guthrie confirmed yesterday, the inclusion of features like 'Exclude from the project'.
I also reported to Scott some others strange errors which make non sense at all. I wait and see for some answer now, but hey I am just a drop in the ocean ;-)

Paschal

# re: VS.NET 2005 Beta 3? Why?@ Wednesday, July 27, 2005 8:39 AM

I think the main point here is that judging from past releases, once the releases go from being labeled "beta" to "RC", then there's absolutely no hope of ever getting a feature put back in or fixed to the satisfaction of most users. This is what I believe Paschal's concern is, as well as mine.

If, for instance, they were to hand out RC1 at PDC in LA, and that release reverted back to the crippled or no web project "feature" (which a lot of us are calling bug-riddled), AND they decided to toss out some other major feature (in the Longhorn tradition), say MSBuild, and also announced that since "RC" means "no new major features added, deleted, or changed significantly", how many users do you think they'd disenfranchise? My guess is....a lot!

Having one last beta in order to evaluate a supposedly fixed feature (like web projects) would still allow for some minor adjustments to the features. I'd rather allow for that and slip the release another month then have crippled features because of "go fever" (which is what NASA suffers from when they launch ignoring obvious mission critical problems).

Here in the US, another infamous quality motto that was in commercials on TV would apply here. The old TV manufacturer that produced Quasar TV's had the motto: "We put the quality in BEFORE we put the name on!"

We're simply pleading with MS that they recognize and avoid "go fever"; instead striving to emphasize quality.

Another old quality dictum is appropriate here:

The Three Major Project Options:
1) On-time
2) Cheap
3) High Quality
You may choose two!

Steve Hall

# re: VS.NET 2005 Beta 3? Why?@ Wednesday, July 27, 2005 11:19 AM

You're missing the point. Since this is truly the first VS to be community-driven (to a certain extent), the community wants to see a final beta (beta 3) so that everybody can get the final feature set straight.

In theory, B3 = RTM. Its just one final diplomatic move to shepard the flock.

Eric Newton

# re: VS.NET 2005 Beta 3? Why?@ Thursday, July 28, 2005 1:02 AM

Frans,

The thing I am concerned about, is the same thing that Paschal is concerned about. Usually at Beta 2 stage features are locked in place (correct me if I'm wrong). It seems to me that several of the outstanding things I'm seeing MS tell us will be changed in the final release are significant changes. The ASP.NET project changes are one example.

I've waited a long time for Whidbey and would be willing to see a Beta 3 or at least an extended RC period.

John Walker

# re: VS.NET 2005 Beta 3? Why?@ Saturday, July 30, 2005 4:31 AM

Hey all,

I agree with Frans on this one, who needs another beta... this will just put the release back yet more...

I must say, I have converted some major apps to beta 2. Once you know what to change, it isn't a big problem. The only thing that doesn't work good for me are usercontrols, but I worked around this one.

I just (L) VS.NET 2005. Bring it on!

Greetz,
-- Rob.

Rob Tillie

# re: IE7 not Acid test compliant? Why? Not enough programmers, Microsoft?@ Tuesday, August 02, 2005 3:17 AM


http://en.wikipedia.org/wiki/Beta_version

Plip

# re: IE7 not Acid test compliant? Why? Not enough programmers, Microsoft?@ Tuesday, August 02, 2005 3:21 AM

RTFA, I wasn't commenting on the beta of IE7, but on remarks made by the IE dev team.

Frans Bouma

# re: IE7 not Acid test compliant? Why? Not enough programmers, Microsoft?@ Tuesday, August 02, 2005 3:33 AM

Frans, you're terrible right... IE7 is a new browser and a new browser MUST BE Standard compliant. Thanks for your words... I agree totally.

Stefano Demiliani

# re: IE7 not Acid test compliant? Why? Not enough programmers, Microsoft?@ Tuesday, August 02, 2005 4:02 AM

Sorry my point was that changes can be made.

A lot of things can happen if enough people shout enough about them.

ASP.NET is a great example of this, there are loads of features people complained about which will be changed before release.

Plip

# re: IE7 not Acid test compliant? Why? Not enough programmers, Microsoft?@ Tuesday, August 02, 2005 4:15 AM

The answer is simple: Backwardscompatibility. If the IE team made IE7 completely CSS compliant, a lot of sites would suddenly stop looking right in IE7. The IE team is aware of the mess they have put themselves in, but when so many websites has been designed to be only IE compliant, they can't just change everything. Read more about their comments here:
http://blogs.msdn.com/ie/archive/2005/07/29/445242.aspx
It would be nice with full W3C compliance, but I think they make a reasonable argument.

Morten

# re: IE7 not Acid test compliant? Why? Not enough programmers, Microsoft?@ Tuesday, August 02, 2005 4:37 AM

plip: what I find annoying is that the IE7 team apparently doesn't know what's the most important thing they have to do, and that's make the browser compliant to standards.

EVERYWHERE you look, people complain about the lack of standard compliance in IE. How can they still ignore that? Do they need even MORE voices to get convinced?

When you write a piece of software, you look at the specs what you have to write and you write the code. That is, if there are specs, otherwise you first have to go through a long research phase. Here, these specs are written out, very detailed, everyone can download them. So I find it really hard that they themselves decide what to implement from these specs and what to skip as 'not that important'. If you plan to do that, why even agreeing on these specs in the first place!

Morten: I understand they'll break sites if they change CSS behavior, but with a proper doc-type it should work. And what's the alternative? Be aware that IE7 is the final browser they'll release. If IE7 doesn't have it, forget it. So, if IE7 doesn't support the full CSS1 and CSS2.x standards, as well as full DOM compliance, we can safely say, these standards are then officially dead.

Frans Bouma

# re: IE7 not Acid test compliant? Why? Not enough programmers, Microsoft?@ Tuesday, August 02, 2005 4:42 AM

I think you need to read the announcement one more time. First of all MS states that:

"I want to be clear that our intent is to build a platform that fully complies with the appropriate web standards, in particular CSS 2 ( 2.1, once it’s been Recommended)."

Read the sentence "fully complies with the appropriate web standards". Also, in response to not passing the Acid2 test, they say:

"...but the Acid 2 Test covers a wide set of functionality and standards, not just from CSS2.1 and HTML 4.01, selected by the authors as a “wish list” of features they’d like to have. It’s pointedly not a compliance test (from the Test Guide: “Acid2 does not guarantee conformance with any specification”)..."

From the announcement I don't see anything stating that MS won't conform to the normal standards.

Micael Baerens

# re: IE7 not Acid test compliant? Why? Not enough programmers, Microsoft?@ Tuesday, August 02, 2005 5:10 AM

MIcael, so you're saying that if a browser complies to all CSS standards (2.0 and 1.0), it still will fail the ACID2 test?

2.0 and 2.1 are set standards, just pick up the descriptions of the statements and start implementing them in the parser and rendering engine. If Microsoft is not willing to do that, don't agree to the standards as well in the W3C. 2.1 IS recommended btw.

And what's 'normal standards' mean btw? I thought there were just 'standards', you support them in full or not at all, there isn't a 'we support standards as we please'-way to comply to standards.

FF doesn't support all statements as well at the moment but it is at least a priority and a goal to do so. MS clearly states they won't.

And what's been said by others as well: if MS doesn't backport CSS fixes to IE6, which runs on other platforms than IE7 will, it won't matter much: more and more webdevelopers will leave the IE only path and code towards the standards, making IE look bad, as the time wasted to fix rendering bugs is too much.

Why go through all the effort to release IE7, when one of the core complaints about IE in general is that it doesn't obey standards.

Frans Bouma

# re: IE7 not Acid test compliant? Why? Not enough programmers, Microsoft?@ Tuesday, August 02, 2005 6:03 AM

If a browser complies to CSS (1.0, 2.0), then yes - it may still fail the Acid2 test. Also - a browser may pass the Acid2 test, and still not comply to standards.

Acid2 assumes basic support for HTML4, CSS1, PNG and Data Urls, so unsupported PNG or Data Url features for instance may cause it to fail. Also Acid2 depends on default stylesheets which might be different on IE7, as well as other assumptions.

I agree - "normal standards" was misleading. I meant "normal set of standards", which I would consider HTML4, XHTML1.0/1.1 and CSS1.0/2.0.

As far as I see it - MS has, with the announcement, committed itself to fully complying to CSS 2.0 and CSS2.1 as well as "appropriate web standards" which I find hard to believe won't include HTML4 and XHTML1.0/1.1 - whether or not they pass the Acid2 is in this case irrelevant.

Micael Baerens

# re: IE7 not Acid test compliant? Why? Not enough programmers, Microsoft?@ Tuesday, August 02, 2005 9:53 AM

Relax, they have clearly stated they are going to be compliant, like the post above has stated. You can be standards compliant and still fail the acid2 test.

L8r.

Jason Clark

# re: IE7 not Acid test compliant? Why? Not enough programmers, Microsoft?@ Tuesday, August 02, 2005 10:09 AM

Frans,

I don't think any modern browser passes the ACID2 test. I take that back, I think there's a version of Safari that's in CVS that passes the ACID2 test.

But Michael is correct. A browser could support all of the current standards and still not pass the ACID2 test. That's one of the things I don't like about the ACID2 test. Rather than becoming a centralized standards test, it's just a "wish list" test. So if you want to test a browser for standards complience, you have to do it on your own.

I agree about backporting the changes to IE6. I don't think they'll do that though. If they can at least get IE7 up to the current level of Firefox, it would make my life easier.

Scott

# re: IE7 not Acid test compliant? Why? Not enough programmers, Microsoft?@ Tuesday, August 02, 2005 11:07 AM

>Frans Bouma
>Posted @ 8/2/2005 10:37 AM
>plip: what I find annoying is that the IE7 >team apparently doesn't know what's the most >important thing they have to do, and that's >make the browser compliant to standards.

Frans -

Unfortunately, you are absolutely wrong here. the MOST important thing for MS to do is make IE7 MORE SECURE. Yes CSS/HTML/XHTML compliance is very important, and must be a huge part of the IE7 effort, but security is a bigger concern for the general users and administrators iof IE.

Christopher G. Lewis

# re: IE7 not Acid test compliant? Why? Not enough programmers, Microsoft?@ Tuesday, August 02, 2005 12:38 PM

Current browsers which pass the acid2 test:
Safari, Konquerer, iCab.

IE 7 will be a pain just like every new browser engine will be a pain.

Standards compliance sure it helps, but it won't replace IE 6 on all windows systems so, we still have to build for yet another rendering engine.

Sites will still have to work / look good in:
IE 5.5 / 6 / 7
Mozilla / Firefox
Safari

And to a lesser degree Opera.

HTML is just like Java write once test everywhere.

Mischa Kroon

# re: IE7 not Acid test compliant? Why? Not enough programmers, Microsoft?@ Tuesday, August 02, 2005 4:04 PM

AND MAN ... You should see the hungarian coding in their source code .. tch tch .. (shaking his head in dismay).

Sahil Malik

# re: IE7 not Acid test compliant? Why? Not enough programmers, Microsoft?@ Wednesday, August 03, 2005 12:01 AM

Acid2 has stuff that goes beyond the actual standards, including some things that may fall into CSS3. Does anyone here like to code software to unfinished requirements? Not if you like to deliver on time!

Jeff

# re: IE7 not Acid test compliant? Why? Not enough programmers, Microsoft?@ Thursday, August 04, 2005 4:17 AM

Maybe I'm not getting this right, but I'd like to doublecheck: the ACID test is no standard at all, is it? The W3C doesn't acknowledge it. It has no formal meaning beyong the Web Standards Project (http://www.webstandards.org), which is a "grassroots coalition" as they call themselves. They fight an honourable cause, but their test is nothing more than that: their test.

Teun Duynstee

# re: IE7 not Acid test compliant? Why? Not enough programmers, Microsoft?@ Thursday, August 04, 2005 12:15 PM

Frans.

If you take teh HTML 4.01, XHTML 1.0 and the contridictory XHTML 1.1, CSS 1.0 CSS 2.0 and CSS 1.1 and fully implement them in the browser you will still fail Acid 2 test.

On top of that if you have to support Different Access related technologies. there are trade offs on those as well.

So IMO Acid 2 is a pipe dream that even though Safari and a 2 other browsers support will fail in implementation details with regards to accessability.

On top of that acid 2 is not a W3 suite of tests it belongs to a webstandards.org and is purposely has non valid css and html in the platform.

Douglas

Douglas

# re: IE7 not Acid test compliant? Why? Not enough programmers, Microsoft?@ Monday, August 08, 2005 9:37 AM

Not to mention that CSS 2.1 is NOT a recommendation anymore. It has been pulled back for further changes.

sdf

# re: IE7 not Acid test compliant? Why? Not enough programmers, Microsoft?@ Wednesday, August 10, 2005 9:56 AM

I havent read the comments here, so if I echo someone else, please forgive me. I honestly thought this beta 1 was specifically for this purpose ie. standards testing etc?

It certainly isn't anything special and when it almost crashed my machine a week or so ago, I uninstalled it and realised that I should never play with beta 1s on my "business" machine ever again!

If it doesnt pass these tests, what is it out there for, because it certainly isnt stable enough?!

Mark

# MS seems innovative, why isn't the IE dev team?@ Thursday, August 11, 2005 4:49 AM

Though the Acid tests aren't really the guidelines here, there are plenty of tests to think of which do give a good impression of IE's implementation of W3's recommendations.

I think Frans is right saying the IE team is plainly too lazy to fix the stuff they are obligated to the web developing crowd.

The main problem is that there is no progress if there is no innovation. The W3C does the innovation for you, why can't they deliver the progress?

It surprises me, since I feel MS is mainly being innovative (see C#, .NET framework, etcetera) and clearing the bad name they had with such a big part of the developing world for years.

However, with IE they're still behind. There is no solid answer as to why they don't satisfy the web developers out there. It's simply bad for their name.

Backwards compatibility is no argument. IE6 already has a way of switching between "standards compliance" and non-standards compliance (quirks) mode. I'm sure the same technique is fit for IE7.

(standards compliance mode is triggered with a doctype on the first line containing a reference to an online DTD)

drm

# re: CommentStripper: strip out xml comments and/or normal comments from C# code@ Friday, August 19, 2005 12:15 PM

This regex will work:

(?<comment>/\*(?>[^/\*\*/]+|/\*(?<depth>)
|
\*/(?<-depth>))*(?(depth)(?!))\*/)

Cheers.

Michael K. Campbell

# re: CommentStripper: strip out xml comments and/or normal comments from C# code@ Friday, August 19, 2005 9:15 PM

So wait a minute, you're telling us that your customer asked for a stripper?

Sahil Malik

# re: CommentStripper: strip out xml comments and/or normal comments from C# code@ Saturday, August 20, 2005 4:45 AM

Thanks for the regex! :) Will see how I can hack that in :)

Sahil: Yeah! so as a geek, the first thing I thought he meant was a stripprogram, so I wrote it. Haven't heard yet if he's happy with it ;)

Frans Bouma

# re: VS.NET 2005 Beta 3? Why?@ Monday, August 22, 2005 6:09 AM

<h2> reply to: Steve Hall
Posted @ 7/27/2005 2:39 PM

I bought a USED Quasar 20" tv in 1992 that had been smoke,water & fire dmaged (a store had been on fire) but anyway 13 years 4 months later it still works like new period.

AND I MEAN EVERYTHING ITS HAS A COXIAL INPUT AND RCA AUDIO INPUT, ITS BEEN USED WITH VIDEO GAMES FOR YEARS, ANTENNA'S ,CABLE ,DISH. ITS BEEN SHIPPED 1800 MILES IN THE MAIL NOT ONLY DOES IT WORK THE PITURE IS CRYSTAL CLEAR (I HAVENT ADJUSTED THE SETTING)NONE OF THAT DARKNESS OR RED COLOR U GET IN 15 YR SETS. So sometimes when they say "We put the quality in BEFORE we put the name on!" they really mean it. I only assume thats why they arent making tv's anymore cause their "QUALITY" eat their profits ..

gangster loc

# re: VS.NET 2005 Beta 3? Why?@ Thursday, August 25, 2005 9:56 PM

Allright. Enough belly aching. Just get to work.. :-)

Chuckles

# re: Linq==Cool. DLinq==... what!?@ Tuesday, September 13, 2005 5:40 PM

"which should be simple, you realize... mapping information inside the domain object, which contains SqlServer specific elements, isn't usable on Oracle."

Well, shouldn't the O/R mapper abstract those specific things away for you? It seems to me that a well written one should.

Scott

# re: Linq==Cool. DLinq==... what!?@ Tuesday, September 13, 2005 7:36 PM

I don't agree with your conclusion that attribute based O/R will limit you... I think if you design the O/R to work with a variety of databases, or in a generic way, there won't be any problem with it.
In fact, i think it's easier to work with attributes on objects, as it lets you see where each object maps to, rather then having to search through an xml file or some external resource.

Miki Watts

# re: Linq==Cool. DLinq==... what!?@ Tuesday, September 13, 2005 8:19 PM

It will be interesting to see how all of this turns out. I still can't believe that there's this much cool stuff in C# 3.0 and the next, greatest .NET framework, but there's no nullable type support in ADO.NET. L-A-M-E. :-)

Sean Chase

# re: Linq==Cool. DLinq==... what!?@ Wednesday, September 14, 2005 5:08 AM

We seem to agree on the scaling part :
http://dotnetjunkies.com/WebLog/gmarius/archive/2005/09/14/132569.aspx

Marius Gheorghe

# re: Linq==Cool. DLinq==... what!?@ Wednesday, September 14, 2005 5:34 AM

Attributes don't scale well in this case, because the attributes contain database specific information: table/field names, and often type specific information.

This therefore means that you can't use a single class for 'Customer' and use it with both oracle and sqlserver (or whatever database): in my example, in sqlserver, you can map it directly, in oracle, you've to convert the bit type and the guid, and maybe in oracle you map it to MY_TABLE.SOME_FIELD and in sqlserver you map it to MyTable.SomeField.

Don't think lightly about this, in a lot of applications this is reality: have the current code base support an additional database, how to do that? If the O/R mapper can't deal with that without having you rewrite a lot of code, it's better to opt for another O/R mapper. It's weird that MS decides to move towards Attributes in this case, because it precisely limits the system for this reason. As they use XML for everything, it would be a better choice to use an XML file for this too, and use attributes to refer to mapping elements in the xml file if you really want the meta info in the code.

Marius: I didn't even think of the CRU methods, indeed... I've to look closer to the specs to see if they solved that.

Frans Bouma

# re: Linq==Cool. DLinq==... what!?@ Wednesday, September 14, 2005 8:22 AM

I don't have the impression that this is meant to be a traditional O/R mapper. I think all it does is give you strongly typed access to a specific database. I don't see that the objects generated by the tool from the database that hold the attributes are meant to be your business entities. They are strongly typed entry points into your database, no more. Why? Well, just think about how you proceed from there: Normally you will specify some complex DLINQ query, and at that point you don't get back objects of those mapping types, but rather anonymous types that depend on whatever query you specified. From there on it is up to you what you do with them: Push them into your business entity objects, deal with them directly, push them into XML, whatever.

David

# re: Linq==Cool. DLinq==... what!?@ Wednesday, September 14, 2005 10:18 AM

Frans,

You're probably one of the topmost O/R gurus out there. I think you should push your opinion upwards though other* channels.

- SM
*You know what I'm talking about right?

Sahil Malik

# re: Linq==Cool. DLinq==... what!?@ Wednesday, September 14, 2005 10:24 AM

Hi Frans

You mentioned in one of your posts that "Attributes don't scale well in this case, because the attributes contain database specific information: table/field names, and often type specific information."
I am a bit confused. Is that not what LLBLGen does with Self servicing? 1 Object = 1 Table?
1 Object with 6 Properties = 1 Table with 6 Fields?

Or am i misunderstanding this?

Wayne Barker

# re: Linq==Cool. DLinq==... what!?@ Wednesday, September 14, 2005 10:56 AM

Wayne: yes, selfservicing does that too, that's also why there's adapter, which allows you to target multiple databases without worries :). Selfservicing isn't suitable for that, as it contains the persistence info in the entities, exactly as DLinq does, and has the same limitation.

Frans Bouma

# re: Linq==Cool. DLinq==... what!?@ Wednesday, September 14, 2005 6:16 PM

DLinq does support all the CRUD methods. See the word doc for this hands on lab: http://download.microsoft.com/download/c/f/b/cfbbc093-f3b3-4fdb-a170-604db2e29e99/DLinq%20Hands%20on%20Lab.doc

David Stone

# re: Linq==Cool. DLinq==... what!?@ Thursday, September 15, 2005 5:39 PM

http://www.lowendahl.net/showShout.aspx?id=53

Patrik Löwendahl

# re: Linq==Cool. DLinq==... what!?@ Friday, September 16, 2005 1:25 PM

Hi Frans,
I guess the ability to switch databases (e.g. from SQLServer to Oracle) is only important to a small group of people. In fact: I've never had the need to switch, nor do I know anyone who ever wanted that (but then again: I've only developed on custom made software for clients, not on retail products).

DLinq offers a utility to generate all O/R mapping code for you (just as LLBLGen does), and I expect the tool is also capable to generate O/R mapping code targeted for Orcale in the future. So when switching databases: couldn't you just re-generate the O/R mapping code again, and ten recompile your code?

B.t.w.: I still love using LLBLGen :)

dion

# re: Linq==Cool. DLinq==... what!?@ Friday, September 16, 2005 2:35 PM

"DLinq offers a utility to generate all O/R mapping code for you (just as LLBLGen does), and I expect the tool is also capable to generate O/R mapping code targeted for Orcale in the future. "
It's likely, yes :)

"So when switching databases: couldn't you just re-generate the O/R mapping code again, and ten recompile your code?"
No, not if you're using a single codebase for your own code which has to target multiple databases, live. More people than you think use this feature, or have to use this feature.

We'll see what DLinq brings in the future ;). I mainly see it as an example implementation of Linq, so more sophisticated O/R mapper engines can follow the same path.

Frans Bouma

# re: Linq==Cool. DLinq==... what!?@ Sunday, September 18, 2005 6:06 PM

I agree with other comments that ideally the O/R Mapper should abstract away vendor differences. I can't see why it should be any harder to do this with an attributed approach. Of course, the attributes must be generalized; you should never refer to bit or guid as these are physical details abstracted away by mapper.

Andrew Peters

# re: Yes, that's called O/R mapping, and it exists oh... for a decade or so.@ Monday, September 19, 2005 7:53 AM

Very well said - again, MS User arrogance/ignorance showing in the comments.

Personally I like the LINQ things - sadly, I can see tremendous limitations which tell me that while I will support LINQ in the future, I still have to turn our my own langauge, as it looks like. In general, it looks like (just installing it on my computer when RC level bits come) t is not extensible enough to accept a notation for query tips, cache control and a lot more that I actually need.

It is nice to finally see this in the langauge, and the implementation is nice, but the idea is neither new nor revolutionary at all. It is more - the ignorance of the people commenting that shows.

Well, if idiots do not read books on the matter of their work, some nice impelmentation and nice ideas that are just evolutionary may acutally seem like a revolution for them.

Btw., O/R mappers are older. TopLink (the now-oracle tool) was by fast not the first. I think the first were written for Smalltalk and date back about 20 years or so.

Thomas Tomiczek

# re: Yes, that's called O/R mapping, and it exists oh... for a decade or so.@ Monday, September 19, 2005 8:53 AM

I don't know. I doubt anybody thinks or claims that ORM is new or exciting. What most people were reacting positively to was the new enhancements to the language that make this sort of thing possible. Personally I find the enhancements that make Linq possible quite elegant.ORM on it's own wouldn't elicit "Oh my God" responses.

Just my $0.02

senkwe

# TopLink@ Monday, September 19, 2005 9:19 AM

TopLink was actually first created for SmallTalk I think, and then ported to Java.

Anders

# re: Yes, that's called O/R mapping, and it exists oh... for a decade or so.@ Monday, September 19, 2005 9:27 AM

Argh, I guess I have to toss that blog post I wrote this morning, joking about MS now having invented OR Mapping. I'm too slow compared to you Frans...
:-)

Best Regards,
Jimmy
www.jnsk.se/weblog/
###

Jimmy Nilsson

# re: Yes, that's called O/R mapping, and it exists oh... for a decade or so.@ Monday, September 19, 2005 9:34 AM

The impression I got from being at the PDC was not that Microsoft thought they'd invented O/R mappers but rather they were the first to truly integrate it as a core part of what was a general purpose language. I could be wrong though and you're obviously entitled to your perception of the comments in the video.

I also don't think this is even worth talking about/breaking down. I mean, all this does announcement does is validate what you folks already do with your applications (LLBLGen, etc.). I'd rather hear about what your application has and why your applications make more sense than this 'new technology' than I would hear folks complain about Microsoft's percieved ineptitude with the technology. You do yourself and us a better service by doing so.

My two cents.

Alex Lowe

# re: Yes, that's called O/R mapping, and it exists oh... for a decade or so.@ Monday, September 19, 2005 9:37 AM

"ADO.NET team showed an .XML file with mappings, and used LINQ over it. The interesting part was that he was not using DLinQ but another mapping technology."

Hmmm

# re: Yes, that's called O/R mapping, and it exists oh... for a decade or so.@ Monday, September 19, 2005 10:37 AM

Sorry Alex if my comment was counter productive. It was considered a joke.
:-)

Best Regards,
Jimmy
www.jnsk.se/weblog/
###

Jimmy Nilsson

# re: Linq==Cool. DLinq==... what!?@ Monday, September 19, 2005 11:32 AM

"I guess the ability to switch databases (e.g. from SQLServer to Oracle) is only important to a small group of people"

I would have to strongly disagree with this statement. You are correct in the sense that this is not a universal need for all applications, but to say that it is a rare event is an understatement. Think about government consulting, for one. Frans knows that switching from one database to another, perhaps due to switching hosting environments entirely, happens in government work (he helped me a great deal in my project switching from SQL Server to Oracle 9i :-)). I think the greater majority of scenarios lies in the need for commercial products to support a choice of database platforms. Having a single codebase for your business objects is a significant advantage, I think.

Larkin Young

# re: Yes, that's called O/R mapping, and it exists oh... for a decade or so.@ Monday, September 19, 2005 11:48 AM

I'm a little tired of the defense so many are giving that this is just an early preview -- when its the third attempt in at least 5 years.

Paul Wilson

# re: Yes, that's called O/R mapping, and it exists oh... for a decade or so.@ Monday, September 19, 2005 2:50 PM

It's not the ORM that they provide that is exciting, it's the languague integration that is facinating.

The fact is that it would be very easy for you to do the same by including ORMApperOfChoice.Query declaration.

This mean that I also don't have to stop and switch cycles from C# to SQL to the ORM query language to whatever.

Add to that the ability to use set operations on in memory objects, and it's pretty powerful.

Ayende Rahien

# re: Yes, that's called O/R mapping, and it exists oh... for a decade or so.@ Monday, September 19, 2005 3:05 PM

::when its the third attempt in at least 5
::years.

...and nothing in the fundamental principle is new. Even 5 years ago, for their first attemtp, they could just have read some white papers from other people BEFORE creating their stuff. At least this is how I started it.

Thomas Tomiczek

# re: Yes, that's called O/R mapping, and it exists oh... for a decade or so.@ Monday, September 19, 2005 3:25 PM


The part I am not looking forward to is having to know this inferior implementation of O/R mapping because it is inevitable that I will work on a client's project which uses this garbage. I sure hope MS fixes this by then . . .

Jason Bunting

# re: Yes, that's called O/R mapping, and it exists oh... for a decade or so.@ Monday, September 19, 2005 5:03 PM

Frans + others, I'm not really sure that I understand what the gripe is here. It doesn't really matter whether you invented it or they did, the fact is that we are getting it :-)

Finally we won't have to turn up to a client's site and work out which O/R mapper has been used (or whether they've rolled their own!).

I'd cut some slack here... or at least hammer them about missing features - but not play the "not invented here" card.

Darren Neimke

# re: Linq==Cool. DLinq==... what!?@ Monday, September 19, 2005 8:11 PM

Thanks Frans and other readers for your feedback on DLinq preview. There is a certain tradeoff between complexity and richness of support. What is out there is a preview and we will doubtless consider the feedback we receive. I have jotted down some of the tradeoffs we considered at http://blogs.msdn.com/dinesh.kulkarni/archive/2005/09/19/471384.aspx


Dinesh Kulkarni

# re: Yes, that's called O/R mapping, and it exists oh... for a decade or so.@ Tuesday, September 20, 2005 12:43 AM

Hey, Channel 9 is all about 'Softies patting each other on the back. I find that site to be very nearly useless, aside from the Ballmer interview that Scoble did.

Jeff

# re: Yes, that's called O/R mapping, and it exists oh... for a decade or so.@ Tuesday, September 20, 2005 1:51 AM

::Finally we won't have to turn up to a
::client's site and work out which O/R mapper
::has been used (or whether they've rolled
::their own!).

You would on our projects. And our projects would not work with DLINQ. See, the problem with DLINQ is that is is stupid - it is about the worst possible implementation of an O/R mapper.

* Db specific.
* Attribute based. Have fun changing the mapping or getting an overview over 500 objects. Tip: Others hav tools helping with this.
* No inheritance. I have projects hwere using data driven inheritance to a pretty large degree, and the code would explode in an O/R mapper not supporting them. Inheritance rocks.
* No extensibility. We use a mapper in which the mapping code is not generated, which means we can extend the model. A base-class can get a data driven subclass just by linking in an additional DLL, without modification of the original object - great for extensible object models.
* Caching, Remoting. DLinq is totally unable to work in a remoted environment in an optimized way. It is the perfect example of people forgetting everything they should know about architecture (layers, tiers) and THEN writing an O/R mapper. Optimized access paths over tiers are something DLINQ does not.
* Absolutly zero support for paging, prefetch paths and a lot more things.
* No way to redefine mappings. Yes, going into MY posting history you can see me being against this, but I now found a business case where an external mapping file that can be replaced makes absolutly a lot of sense. But then, we use an O/R mapper to develop something like WinFS for hosting, which is, in itself, already pretty special.

Frankly, I have problems using LINQ (not even DLINQ) as query system for my own O/R mapper due to LINQ limitations - I simply can not express enough things in it (what objects to prefetch, whether to prefer original data or cache data, or even something so simple like paging). These features, though, are in heavy use in some applications (like http://www.powernodes.com/) and make the difference between some functions taking a second or taking a minute - so I can not live without them.

So, we have a technology not flexible enough (as it looks) in LINQ (but I seriously hope I can code around some of the limitations somehow), and on top of this we have an O/R mapper made by - well - MS' worst developpers, as it looks like, ignoring what all white paperr show to be the core elements an O/R mapper should have.

Yes, we will get to see this at customer's sides. Bad news.

I just with the MS developpers in this area would learn to READ before coding, and the PM would actually read stuff like Ambler's "Building Object Applications That Work", or his persistence white paper. There are so many white papers around on the net that anyone that does not know what a persistence layer must do, and that is working on one, has to accept he is accused to be an idiot for not reading them.

::It's not the ORM that they provide that is
::exciting, it's the languague integration
::that is facinating.

Yes :-)

::The fact is that it would be very easy for
::you to do the same by including
::ORMApperOfChoice.Query declaration.

Yes :-)

::This mean that I also don't have to stop and
::switch cycles from C# to SQL to the ORM
::query language to whatever.

Not sure about this so far. See, it looks like the O/RM can include search functions and like there is some syntax showing how they are called, which would mean you would have to learn an O/RM's available mechanisms. At least I hope (waiting for the RC version to come out), because otherwise this langauge is just too limited for practical use.

::Add to that the ability to use set
::operations on in memory objects, and it's
::pretty powerful.

Yes.

Thomas Tomiczek

# re: Yes, that's called O/R mapping, and it exists oh... for a decade or so.@ Tuesday, September 20, 2005 5:57 AM

Sorry to say this... but i think that Darren Neimke is sortof right with his statement

"Finally we won't have to turn up to a client's site and work out which O/R mapper has been used (or whether they've rolled their own!)."

Not that i want to use their OR Mapper but the mechanism is definitly going to be the standard. It is maybe not scalable but people are definely going to use it. Because typing "var q = customers
where c.city == "London"" is much more user friendly than creating the correct object and then using complicate predicate objects to do the filter job. Another reason why it is much more user friendly is because "var q = customers
where c.city == "London"" is read easier by a human than reading the complex obect structures that we are using with existing OR Mappers.


Now i have a question to the OR Mappers out there .. Is it going to be possible for you to link your OR Mappers into this same structure? What i mean is. when i type "var q = customers
where c.city == "London"" in C# will i be able to select which OR Mapper i want to use in the background? By the look of things the OR Mapping functionality comes from their namespace System.Query will i have to import for example LLBLGen.Query and have a access to the same power? or do i still select System.Query?

Wayne Barker

# re: Yes, that's called O/R mapping, and it exists oh... for a decade or so.@ Tuesday, September 20, 2005 7:24 AM

I posted this comment to my blog:

http://MarkItUp.com/Posts/Post.aspx?postId=0d4e1330-d852-4cd6-b1af-8afac4810244

But I'll re-post here to keep this thread complete:

*********************************************

I was reading (and replied to) an article by Frans yesterday which was a rant "against" LINQ. The bit that got me - and why I replied - is that it seemed that Frans was playing the player and not the ball.

From my shallow understanding, ORM developers should be embracing "Language integrated query". LINQ is not designed to be an ORM but rather the syntactic sugar that runs over the top of them.

Reading the C# spec. we can see that there is a section there which describes "The query expression pattern". This is a pattern that a Type can implement to support the standard query operators. In fact this is exactly what is happening in DLINQ where the DataContext object implements that very pattern.

So, thinking about the future, I can see that potentially I could walk into a client and write code against any ORM tool using syntax that is common to me as a C# programmer.

Isn't that a good thing?

Darren Neimke

# re: Yes, that's called O/R mapping, and it exists oh... for a decade or so.@ Tuesday, September 20, 2005 8:11 AM

"an article by Frans yesterday which was a rant "against" LINQ."
No! It's not a rant against Linq! It's a rant against "we invented O/R mapping, look how cool this new feature is which offers us an OO view of the db!".

I actually LIKE linq, the general system of being able to traverse any IEnumerable<T> with functions and expressiontrees. See my previous post about Dlinq and Linq, it even has in the title: "Linq==cool".

Watch the video and read the comments below the video post. Then take a step back and think by yourself: "have these guys ever heard of O/R mapping or do they see this phenomenon for the first time?". I got the feeling they did saw it for the first time. Which is why I posted this blogposting.

Frans Bouma

# re: Yes, that's called O/R mapping, and it exists oh... for a decade or so.@ Tuesday, September 20, 2005 8:49 AM

"Watch the video and read the comments below the video post. Then take a step back and think by yourself: "have these guys ever heard of O/R mapping or do they see this phenomenon for the first time?". I got the feeling they did saw it for the first time. Which is why I posted this blogposting."

I agree that it doesn't sound like these guys ever heard of O/R Mapping ever before - so ofcourse they are going to think - Ahh! praise microsoft! (for this technology that we don't know is actually called O/R Mapping)

Wayne Barker

# re: Let me say it again: Linq==cool@ Tuesday, September 20, 2005 9:59 AM

That is very well said. I doubt anyone already in the O/R mapper business ignores the benefits of LINQ - it is just, as you said, that DLINQ is pretty much the worst possible thing MS could have done for implementation. Plus it DOES provide a very nice chaos (!) of query systems for C# 3.0, with a lot of the current technology just being abandoned.

Thomas Tomiczek

# re: Yes, that's called O/R mapping, and it exists oh... for a decade or so.@ Tuesday, September 20, 2005 10:36 AM

I had the same reaction when you start hearing all the design patters and unit testing chatter about 2 years ago. They ignored it for so long, or didn't talk about it, then all the sudden, they added a little "best practices" to the koolaid.

AC [MVP MCMS]

# re: Let me say it again: Linq==cool@ Tuesday, September 20, 2005 12:36 PM

Frans, great post. They are going to have to document the hell out of the query language syntax. I was up and running using LLBLGen Pro's API pretty quick, while I'm still trying to get my arms around how to perform non-trivial queries with Linq syntax (Dlinq). For example, create a predicate expression in LLBLGen Pro to basically do a select customerID, CompanyName, CountOrders grouping by customerID...then do the same thing using Dlinq...then compare the SQL syntax using SQL Profiler. I agree, the concept of DLinq cool (maybe not the implementation), but it is of course unproven. :-)

Sean Chase

# re: Let me say it again: Linq==cool@ Tuesday, September 20, 2005 3:26 PM

Great summary -- and I totally agree.

Paul Wilson

# re: Let me say it again: Linq==cool@ Tuesday, September 20, 2005 11:30 PM

Frans,

Way to clarify! Now I think we're all on the same page. :)

Cheers,
Drew

Drew Marsh

# re: Let me say it again: Linq==cool@ Thursday, September 22, 2005 10:31 AM

Right ;)
Some people don't understand what are Linq compared to SQO, DLinq and XLinq where Linq is on top of.

Sébastien Ros

# re: Let me say it again: Linq==cool@ Friday, September 23, 2005 3:19 PM

The DLinq plans are early, even compared to the LINQ plans properly. The ADO.NET team (well, I) did another presentation at PDC about an integration of the LINQ work into existing components. That session was DAT312 and the deck should be on http://commnet.microsoftpdc.com/Downloads.aspx

We'll be taking feedback from customers over all this work and working out the right feature sets for eventual release.

Samuel Druker

# re: Google competing directly with MS? No, why should they?@ Saturday, September 24, 2005 8:16 AM


Yeah, for instance Google should buy eBay now that they've bought Skype in order to leverage more web services.

anona

# re: Google competing directly with MS? No, why should they?@ Saturday, September 24, 2005 10:05 AM

"without paying a huge price"

That's the metaphor everybody is dreaming about which MS is not very happy with.

The internet provides the platform and MS has been trying for years to cripple it and slower its progress.

Metaphorically speaking, the levees they built were fragile and the flood has just started.

Thanks to the google storm ;-)

StormChaser

# re: Time management tips for developers@ Saturday, September 24, 2005 10:09 AM

Hey Frank, great article, but looks like the link is broken, here:

http://www.codeproject.com/gen/work/Time-Management-Tips.asp

Tx!

BrokenLink

# re: Google competing directly with MS? No, why should they?@ Sunday, September 25, 2005 6:49 AM

"What if that backbone isn't inside your company but on a virtual space in the Google universe? And you get there by simply booting from a CD, within 15 seconds? Or accessing the same system, information and functionality (and more) via handhelds, smart-phones, laptops, even a set-topbox on your TV at home?"

Lambda small and med business sized companies will accept to give their data to a supplier. But high value-added services companies, companies which only capital is a customer listing, and large companies will never (security, intelligence issues)

I think google and ms have not the same target:
- Google aims to map human mind as others map human genes
- Microsoft is obsessed by its egemony and it will be until customers will have no other choice than pay him a tax to enter the One connected community of businesses

There is just a technology overlap between these two targets

Piotrek

# re: Google competing directly with MS? No, why should they?@ Sunday, September 25, 2005 2:05 PM

I believe that the ultimate fear MS has with Google is that Google will come out with a web-based office suite that they can charge for on a subscription. MS has a search engine and drive traffic to it by distribution of their web browser, thus the need for Google to diversify its offerings.

Wallym

# re: MVP Summit!@ Monday, September 26, 2005 10:48 AM

I'd love to meet you. Since we are both C# MVPs we should be in the same sessions so I will look for you there.

Sam Gentile

# re: MVP Summit!@ Monday, September 26, 2005 10:55 AM

Great! :) I'm sure we will run into eachother, looking forward! :). I'm in the W hotel btw :)

Frans Bouma

# re: MVP Summit!@ Monday, September 26, 2005 11:32 AM

Enjoy the Summit :)

P.J. van de Sande

# re: MVP Summit!@ Monday, September 26, 2005 3:06 PM

I am at the Westin as the W was not even showing up as a choice (-

Sam Gentile

# re: Let me say it again: Linq==cool@ Wednesday, September 28, 2005 3:05 AM

I still see DLINQ completely different then you do. I just see it as a way to directly deal with sets of rows and not as an attempt to create a mapping layer between relational and OO. What do you really get when you specify a DLINQ query? You'll get back something very similiar to a data reader that hands you back an object (of anonymous type that EXACTLY maps to what you have specified in your query, NOT some class in your code!) for each row in the result set. Essentially what you get is a strongly typed data reader paradigma. It just brings the relational concepts into the OO world, ie you now have row objects with strongly typed columns in your OO world. To me that is not object-relational mapping, where you specify how to bring your relational data into your (hopefully) well designed OO domain type system.

I really believe it helps if you think of DLINQ as a strongly typed version of ADO.NET. I also believe it was incredibly misleading that they decorated classes with attributes by hand during the PDC keynote. That obviously implied that this would be the normal developer routine: Take your domain model, stick attributes on it and then program against it. I just don't believe that this is the general idea. There is a tool in the preview that creates all the classes, attributes etc for you from a database. I see that tool alike to the proxy generator of web service proxies. So, you add a reference to a database in your project and with that you can use DLINQ to access the database, STILL thinking about rows and columns, but getting those in strongly typed form.

I just believe that there is a middle step between a full blown ORM and database access via SQL strings through an API. For many, many scenarios you DO want to deal with the native concepts of a DB, ie sets of rows, but also want to do that strongly typed. It seems that that is exactly what DLinq provides...

David

# re: Yes, that's called O/R mapping, and it exists oh... for a decade or so.@ Sunday, October 02, 2005 11:06 PM

First to integrate it with the language? I call bullshit! I Use a product for Smalltalk and the code to write looks like this....


session := SSWDatabase new.

orders := (session instancesOf: Order) select: [ :ea | ea customer id = 13 ].
orders do: [ :ea | ea inspect ].


no changes to the language were required, and the only point at which _anything_ is executed against the database is at the point #do: is executed (When it actually executes the joined query against the db and pulls back only records pertaining to a customers Order)

C# can now get f***ed

Jason R

# re: Pro ADO.NET 2.0 by Sahil Malik, a review@ Thursday, October 13, 2005 7:59 AM

And you haven't even put your affiliate ID in the Amazon link!!

;)

Wim Hollebrandse

# re: Pro ADO.NET 2.0 by Sahil Malik, a review@ Thursday, October 13, 2005 8:08 AM

hehe :) I don't even have one, actually. So I copied Sahil's link, probably with his affiliate ID ;)

Frans Bouma

# re: Pro ADO.NET 2.0 by Sahil Malik, a review@ Thursday, October 13, 2005 10:12 AM

Oh thanks man !!!

BTW, for the readers here, Frans was a reviewer on my book. And boy did he bitch a lot. In fact, in the acknowledgements section I say something like this --

"I am happy to have found the two most spit in the face reviewers I could find..".

I am glad I listened to all he said as I feel that ended up improving the quality of the book by many times.

Reading this from especially Frans is more a treat for me than anyone else. I am extremely happy that Frans of all people ended up writing this.

Thank you SIR!!

Sahil Malik

# re: Pro ADO.NET 2.0 by Sahil Malik, a review@ Thursday, October 13, 2005 4:28 PM

Thanks man :)

And you're welcome, you worked hard enough to deserve a top spot at Apress top 10 list :)

Frans Bouma

# re: Pro ADO.NET 2.0 by Sahil Malik, a review@ Saturday, October 15, 2005 5:38 PM

Manual trackback:

http://rolandboon.net/WSBeanRSS/Weblog.aspx?day=2005-10-15&d=1

http://rolandboon.net/WSBeanRSS/Weblog.aspx?day=2005-10-13&d=1

Roland

# re: Server problems...@ Monday, October 24, 2005 3:15 PM

Frans, hopefully it's fixed soon.
Btw: while you're at it, please note that the links to the new Knowlegde base and the Quick Faq (in the newsitem from august 10th) are dead links. I guess the '/pages/' path is left out in these url's.

dion

# re: Server problems...@ Monday, October 24, 2005 3:25 PM

You can browse the site? I can't, I get a service unavailable error. :(

Interned services, where we host the site, told us they're looking into it, though that was more than an hour ago, still no luck...

Right before the 1.0.2005.1 release. :/

Frans Bouma

# re: Server problems solved (apparently not)@ Monday, October 24, 2005 5:19 PM

I guess this is an application pool error. Something must be wrong with the settings of the user in the local security policy.

Did they do an update?

Kris

# re: Server problems solved@ Tuesday, October 25, 2005 2:45 AM

if you need solid hosting I know a good place ;-) (asp.net 2.0 also)

Sander

# re: Server problems solved@ Tuesday, October 25, 2005 3:00 AM

We got an x amount of megabytes for the sole domain and we run 3 webapps on that, including our forums. the forums use their own search engine because interned services don't want to enable full text search, and the cache for the wordlists costs a lot of memory, as it seems. Add to that a lot of requests for a 12MB file, and you have a nice scenario where the appPool dries up and iis says 'goodbye'. I've moved the forum code to our own box (which is in the same rackspace) so our main site has more breathing space.

Not fun, when you're supposed to be drinking champagne because of hte new release, and all you do is desperate watching the site go down aaargg! :). For now it works ok, let's hope it stays up :)

Frans Bouma

# re: LLBLGen Pro v1.0.2005.1 released!@ Tuesday, October 25, 2005 3:35 AM

Frans,

As an LLBLGEN user, I've often wondered if you are the infamous Otis who answers all my stupid questions on the tiny forum? Would love to know!!!

John Walker

# re: LLBLGen Pro v1.0.2005.1 released!@ Tuesday, October 25, 2005 3:42 AM

Yes that's me. :) though... INfamous? *sniff*

Frans Bouma

# re: LLBLGen Pro v1.0.2005.1 released!@ Tuesday, October 25, 2005 3:43 AM

Congrats Otis!!!

I wish I had a job that would allow me to use LLBLGen again. :(

Chris Martin

# re: LLBLGen Pro v1.0.2005.1 released!@ Tuesday, October 25, 2005 7:17 AM

Congrats Frans -- and Compact Framework too!

Paul Wilson

# re: LLBLGen Pro v1.0.2005.1 released!@ Tuesday, October 25, 2005 8:00 AM

Congrats Frans!

I know you've put a lot into this. Do you know if there will be samples/extended documentation to demonstrate the new capabilities?

Thanks,

John

John Mandia

# re: LLBLGen Pro v1.0.2005.1 released!@ Tuesday, October 25, 2005 10:19 AM

Congratulations, Frans!

Your dedication to this incredibly productive and feature rich tool astounds me. As a very satisfied customer, I thank you.

David Hayden

# re: LLBLGen Pro v1.0.2005.1 released!@ Tuesday, October 25, 2005 4:40 PM

Nothing but good things to say, so forget about the "infamous" comment. Thanks!

John Walker

# re: LLBLGen Pro v1.0.2005.1 released!@ Tuesday, October 25, 2005 4:50 PM

Thanks guys!! :D

John Mandia: docs are of course already updated, the whole manual is now 334 A4 pages thick, almost a book! :) Examples have been updated as well.

Paul: yeah CF.NET support... If I had known all the trouble it would give me (it's not fun to develop for cf.net) I probably never would have implemented it all, but once it works, you of course won't remove it ;)

What I have to admit, I never though inheritance would be such a cool feature :)

Frans Bouma

# re: LLBLGen Pro v1.0.2005.1 released!@ Thursday, October 27, 2005 1:02 AM

Hi Frans

I am LLBLGen user and very happy with the tools. Thank you very much for such a great product.

I would like to print this page is there any Print thsi Page functionality so that I can print this page clearly.

Thanks

Kaksss

Kaksss

# re: LLBLGen Pro v1.0.2005.1 released!@ Thursday, October 27, 2005 7:10 AM

:)

I'm afraid this horrible blog-engine doesn't have a printer friendly version of a blog entry :(

Frans Bouma

# re: VS.NET 2005/Sqlserver 2005 RTM and are available at MSDN@ Thursday, October 27, 2005 4:13 PM

Service unavailable right now, they have the 2005.1 download syndrome :)

Kris

# re: VS.NET 2005/Sqlserver 2005 RTM and are available at MSDN@ Thursday, October 27, 2005 4:22 PM

Yeah it's already not working :-/

Sahil Malik

# re: VS.NET 2005/Sqlserver 2005 RTM and are available at MSDN@ Friday, October 28, 2005 3:58 AM

OK, just so I'm certain on this RTM (Release To Manufacture) is definately the final release - come Nov 7th I wont have to uninstall it and reinstall another version?

Probably a stupid question - but I really don't want to go through all that again!

A. Non Coward

# re: VS.NET 2005/Sqlserver 2005 RTM and are available at MSDN@ Friday, October 28, 2005 4:10 AM

This is the final version, the same version that's given out at the launch parties and the one you can buy in stores later htis month.

Downloads are flying at the moment, I haven't seen a drop in speed since it started, which is a first. They finally managed to make the downloads go smoothly :D

Frans Bouma

# re: SqlServer 2005's installer... Oracle Quality, at last!@ Friday, October 28, 2005 10:27 AM

SQL 2000 had a .bat setup script :)

Police

# re: SqlServer 2005's installer... Oracle Quality, at last!@ Friday, October 28, 2005 10:50 AM

Nerd ;)

Frans Bouma

# re: SqlServer 2005's installer... Oracle Quality, at last!@ Friday, October 28, 2005 11:05 AM

The sql2k5 install ran just fine for me, but that is probably because I dropped the security permissions for IE on my system.

The NGEN on 64 bits is REALLY painful.

Wallym

# re: SqlServer 2005's installer... Oracle Quality, at last!@ Friday, October 28, 2005 11:35 AM

I really like your post title and I feel your pain :-) Whoever has installed Oracle products before probably does to.
When I first read it, I thought maybe the installer was also made in Java... Last time I installed ODP.NET, it was a 180 MB download, which would occasionally result in a successful painful install just to get a few DLLs.

Fabrice

# re: SqlServer 2005's installer... Oracle Quality, at last!@ Friday, October 28, 2005 11:52 AM

Another tip: if you want ngen to do all of its work immediately, you can run "ngen executeQueuedItems" to let it process the entire queue immediately.

Wilco Bauwer

# re: SqlServer 2005's installer... Oracle Quality, at last!@ Friday, October 28, 2005 11:58 AM

How do yet the key now - I see no key in the "product key" page after downloading the cds.

RD

# re: Placement of Solution Explorer in VS.NET@ Friday, October 28, 2005 2:05 PM

At least on my system, in VS.NET 2003, the Solution Explorer was docked at the right side by default.

Matthijs van der Vleuten

# re: Placement of Solution Explorer in VS.NET@ Friday, October 28, 2005 2:26 PM


Why don't you just move it to the left side. Some people like left, some like right. I have my solution explorer on the right side.

The entire layout, as you know, is customizable.

Ron K

# re: Placement of Solution Explorer in VS.NET@ Friday, October 28, 2005 2:39 PM

That's also where it was in VS2K3.

Also, you probably should've been using the CTP's and complaining on Product Feedback if you don't like it.

Personally, that's where I like it (on the right). It's an easier transition to dual monitors. Do you put your secondary monitor to the left of your main monitor?

Erik Porter

# re: Placement of Solution Explorer in VS.NET@ Friday, October 28, 2005 3:30 PM

"Also, you probably should've been using the CTP's and complaining on Product Feedback if you don't like it. "
Yeah, like the complaint I once send back when whidbey was alpha still about multi-line text search and that they would implement it... but didn't.

I have a single monitor, 19" with 1600x1200 (iiyama CRT). :)

Frans Bouma

# re: Placement of Solution Explorer in VS.NET@ Friday, October 28, 2005 4:11 PM

If you plan on keeping your Solution Explorer open, your suggestions make sense. On the other hand, I always keep mine collapsed, so I want it on the right side. Otherwise, when it expands, it covers the code that, as you wisely noted, sits mostly on the left.

I'm guessing the decision as to the 'default' positioning was one made by committee. "If we collapse it by default, people won't know where it went to. But if we put it on the left, it makes the code jump around. Why don't we just put it on the right". Hence getting the worst of both worlds. ;)

Bruce Johnson

# re: Placement of Solution Explorer in VS.NET@ Friday, October 28, 2005 4:35 PM

Haha Bruce, what a great comment :D. Not only very funny, it actually makes sense when you think about it... ;)

Frans Bouma

# re: Placement of Solution Explorer in VS.NET@ Friday, October 28, 2005 4:37 PM

"Yeah, like the complaint I once send back when whidbey was alpha still about multi-line text search and that they would implement it... but didn't."

Don't give up so easily! ;) They're listening, it's just that every decision made is a business decision (planning, implementation, testing, etc). Everything costs time and money and some can get in there and others can't. It doesn't mean you should give up because something you suggested didn't get in there. I'd say of all my suggestions I've made, probably only about 15-20% of them got in, but I still submit them. ;)

You NEED a second monitor. I run dual 20" FP (both 1600x1200) at home and can't live without that. So much more productive and easier to use. :)

Erik Porter

# re: Placement of Solution Explorer in VS.NET@ Friday, October 28, 2005 7:25 PM

> I have a single monitor, 19" with 1600x1200 (iiyama CRT).

Wow, you really should go dual display. You're cheating yourself out of a lot of productivity with only one display!

Two displays should be REQUIRED for developers IMO.

Jeff Atwood

# re: SqlServer 2005's installer... Oracle Quality, at last!@ Saturday, October 29, 2005 1:28 AM

>Last time I installed ODP.NET, it was a 180 MB download, which would occasionally result in a successful painful install just to get a few DLLs.

If it worked the first time you ran it, it must not have been an Oracle product. Maybe you were at a hackers site by mistake.

Eric

# re: Placement of Solution Explorer in VS.NET@ Saturday, October 29, 2005 3:43 AM

"Wow, you really should go dual display. You're cheating yourself out of a lot of productivity with only one display! "
I've thought about it, but the moments I needed 2 screens because my current screen was too small aren't that often.

Could you please explain, and I know explaining an experience is hard, why a dual monitor setup is more productive? Thanks :)

Frans Bouma

# re: Placement of Solution Explorer in VS.NET@ Saturday, October 29, 2005 11:35 AM

Frans... Believe me, once you have used dual monitors for development you can NEVER go back. I have dual monitors at the office and at home. When I work from home over Remote Desktop (which doesn't support dual monitors) I almost feel like making the trip into the office. It's difficult to pin down exactly what the productivity gains are, but the second monitor saves you from any alt-tabbing. You can code on monitor 1 and test on monitor 2. Other secondary applications, like Email, IM etc are also open on monitor 2. You can also run VS.NET over the two monitors and create a vertical tab group on monitor 2. The allows you to have 2 code panels open, one on each monitor and of course your solution explorer (which is what this thread was all about...) is open also on the secondary monitor. Trust me - Buy 2 quality 17" flat panels.

Marcus Mac Innes

# re: .NET 2.0 GridView for winforms... why is it so slow?@ Saturday, October 29, 2005 1:14 PM

It most certainly is not just you. I was secretly hoping that the RTM version would be faster, but it's not. The old DataGrid control is probably an order of magnitude faster when it comes to repaint operations. This is a huge disappointment for me as I will have to continue to use a combination of Janus and Infragistics controls.

In addition, I miss the hierarchical capabilities of the old DataGrid control. Sure, it was done in a terrible way, but it was useful for prototyping.

Matthew Vandergrift

# re: .NET 2.0 GridView for winforms... why is it so slow?@ Saturday, October 29, 2005 2:18 PM

Not just you. I thought it might have been because I'm running beta 2 under VmWare.

Apparently not.

Kenneth Russo

# re: Placement of Solution Explorer in VS.NET@ Saturday, October 29, 2005 5:04 PM

I've noticed that for a while now.
I never understood why people liked it on the right, but I just move everything around the first time I open it after an install. (Then close to save the settings)

With it on the left, I have an index (large scope) on the left with projects, files and folders and a details view in the code window on the right.

If I were using an RTL language, I'm sure I would see it the other way.

A few other issues are the fact that only some of the open code windows appear as tabs and the current file is no longer selected in the project explorer.
The UI no longer helps me see what is open and where I am in the project structure. 2003 could be annoying with constant jumping around, but now I have to keep track myself.

The Control+Tab behavior seems to have changed too.
I find myself closing all editor windows just to get "centered" much more than I ever have before.

Chords: Harumph, it makes sense and all that, but I am not a typist, I have a few hotkeys that I assign based on my frequency of use and the size of my hands.

It a list of petty complaints, but the real thing for me is that I CAN change almost all of it.
I had a bit of difficulty with CTRL+B to "build selection" (build current project) because of a global chord, but I've changed the CTRL+TAB and I know I can get it to select the files as I change files in the editor.

One thing I frequently did when I had two monitors was having Office stuff and the specs on one screen and VS on the other.

It would be nice to have some predefined configs for dual monitors but don't make it the default; it will be a long time before most employers recognize that two screens are more than worth the cost. :(
I've only seen it happen when there was "extra" hardware sitting around unused to provide the first second monitor configs.

AndrewSeven

# re: .NET 2.0 GridView for winforms... why is it so slow?@ Saturday, October 29, 2005 5:56 PM

The forgot to take the following statement out...

System.Threading.Thread.Sleep(500);

Wim Hollebrandse

# re: Placement of Solution Explorer in VS.NET@ Sunday, October 30, 2005 12:57 AM

>.. why a dual monitor setup is more productive?..

For web development, it's a no brainer. Keep a browser open in one window and code in the other. Makes seeing changes a breeze.

If you use add-ons, like UltraMon toolbar, it lets you exand the open window across all your monitors. For apps like PhotoShop, this is great, as you can move all your palettes to another monitor and work full screen on the image. You can also do this in Enterprise Manager, (or Management Studio). Very nice when looking at views with many tables.

Almost every developer I know has multi-monitors. It's too hard to list all the resons why you would need multi-monitors, but once you try it, you'll wonder how you go along without it. (I actually have 3 montitors. :-) )

Sean

# re: .NET 2.0 GridView for winforms... why is it so slow?@ Sunday, October 30, 2005 3:08 AM

Wim: heh :)

I had the same thoughts as you, Matthew, I also thought it was beta code and the final would be fast because, well, it would be the non-beta.

It's so incredibly slow, I have no idea what they're doing. Even with GDI painting in C# code you can't be this slow.

Later today I'll post an OldSkool Demoscene C# rotozoomer effect to show you how freaking fast .NET code can be, just for comparison.

Frans Bouma

# re: .NET 2.0 GridView for winforms... why is it so slow?@ Sunday, October 30, 2005 12:23 PM

Not only you ... same problem here, although I thought it was going to be faster on the final release (currently running RC1).

Yoeri

# re: Placement of Solution Explorer in VS.NET@ Sunday, October 30, 2005 12:35 PM

I totally agree with the opinions about having dual monitors. It makes life so much easier. Especially if you switch between windows a lot.

Sean Chase

# re: .NET 2.0 GridView for winforms... why is it so slow?@ Sunday, October 30, 2005 3:59 PM

Its because along with the site weblogs.asp.net, Winforms is just another Microsoft unwanted stepchild.

Travis

# re: .NET 2.0 GridView for winforms... why is it so slow?@ Monday, October 31, 2005 3:34 AM

Travis, perhaps, perhaps not. They're really pushing WinForms again as SmartClients. Not every WinForm app is a smart client, but I really like SmartClients! Finally state again, and rich-client features. ;)

But as they're on their way with Avalon, you might be right as well. I've heard they didn't include a winform testing solution in VS2005/TS because Avalon is on its way.

Dennis van der Stelt

# re: SqlServer 2005's installer... Oracle Quality, at last!@ Tuesday, November 01, 2005 1:07 PM

Hm, I thought I understood the comments about Oracle - but then I ran the SQL Server 2005 installation and it worked just like that. Double-click splash.hta and a very nice installer runs, right through with all components... Not sure what your problem really was about.

Oliver Sturm

# re: VS.NET 2005 C# : IDE hang with simply code...@ Thursday, November 03, 2005 12:58 PM

Confirmed that it happens on my machine as well (VS 2005 Pro RTM)

Erv Walter

# re: VS.NET 2005 C# : IDE hang with simply code...@ Thursday, November 03, 2005 1:13 PM

Yes, also reproducible on mine. (VS 2005 Pro RTM / WinXP SP2)

Police

# re: VS.NET 2005 C# : IDE hang with simply code...@ Thursday, November 03, 2005 2:11 PM

Check out how to crash the VB part of the IDE:
http://lab.msdn.microsoft.com/productfeedback/viewfeedback.aspx?feedbackid=ad3a004f-d598-4d22-9ae7-95174794a573

RolfBjarne

# re: VS.NET 2005 C# : IDE hang with simply code...@ Thursday, November 03, 2005 2:25 PM

I've only had my hands on RTM for a few days and have already seen more bugs than in VS2003 altogether. While it's the best IDE ever, it is also the most buggy IDE ever. Let's hope that they actually use that built-in product update feature this time around. It's been there since v1, but, unfortunately, has never been used.

TheJepp

# re: VS.NET 2005 C# : IDE hang with simply code...@ Thursday, November 03, 2005 2:29 PM

I can't reproduce (RTM, en-US WinXP SP2)

TheJepp

# re: VS.NET 2005 C# : IDE hang with simply code...@ Thursday, November 03, 2005 2:37 PM

Hi Frans!

Can't reproduce this error on VS 2005 Team Suite Trial (RTM). All worked for me after I try steps you outline, but maybe I do something wrong.

Anyone elese tried on VS 2005 Team Suite?

thanks,
Slavo.

Slavo Furman

# re: VS.NET 2005 C# : IDE hang with simply code...@ Thursday, November 03, 2005 2:42 PM

Confirmed. Happens on mine as well. Although I only get 50% CPU usage on devenv.exe (And of course, that makes it all better... *rolls eyes*)

David Stone

# re: VS.NET 2005 C# : IDE hang with simply code...@ Thursday, November 03, 2005 2:46 PM

I can reproduce it, too (RTM, 2k3). The following is a more compact version of the repro:

..
class A<T>
{
}

class B : A<B>
{
}
..

Now for example add a property in A<T> and it'll crash.

Wilco Bauwer

# re: VS.NET 2005 C# : IDE hang with simply code...@ Thursday, November 03, 2005 3:00 PM

Followed your instructions to reproduce, but didn't hang up.

(on a box (w2k3 sp1) that had b1 and b2 installed previously I must add)

Henk

# re: VS.NET 2005 C# : IDE hang with simply code...@ Thursday, November 03, 2005 3:49 PM

Thanks for the feedback! I'm glad I'm not alone in this, thanks Wilco for the very short repro, although THAT one doesn't hang / crash my IDE... Also I'm glad that there is apparently an IDE setup which doesn't hangup.

The people who can't reproduce it, do you have settings changed in the IDE, like intellisense preferences which you have disabled or so?

What concerns me is that the editor has these kind of problems. An editor should at all time stay up and let input be entered.

Frans Bouma

# re: VS.NET 2005 C# : IDE hang with simply code...@ Thursday, November 03, 2005 3:49 PM

Have to take my previous comment back, Wilco's example hangs it!

Henk

# re: VS.NET 2005 C# : IDE hang with simply code...@ Thursday, November 03, 2005 4:09 PM

> although THAT one doesn't hang / crash my IDE...

Interesting. I changed from the "General Dev Settings" to "C# dev settings", and now my repro does indeed not repro anymore. Yours still does though.

Switching back to the "General Dev Settings" profile, restarting the IDE and trying my short repro, it crashes again.

I have tried all different profiles now, and your repro seems to work in all of them here. Mine only works for the general profile and the VB profile.

Wilco Bauwer

# re: VS.NET 2005 C# : IDE hang with simply code...@ Thursday, November 03, 2005 4:20 PM

Hello!

>>The people who can't reproduce it, do you have settings changed in the IDE, like intellisense preferences which you have disabled or so?<<

No. I installed this just on yesteday and this was just about first thing I try with RTM of VS 2005. I choosed C# IDE settings on first start of IDE. It is VS 2005 Team Suite Trial Edition

Haven't installed any of previous versions of VS 2005 on that machine. Have VS.NET 2003 there. OS is WinXP SP2 with all latest critical patches.

Now for interesting part... ;)

Wilco short example hang my IDE too, when I try add something like:

public bool IsFixed {

when I typed brace then IDE hangs.

strange... still can't reprosuce Frans' long example though...

thanks,
Slavo.

Slavo Furman

# re: VS.NET 2005 C# : IDE hang with simply code...@ Thursday, November 03, 2005 4:28 PM

Wilco: Also in C# settings your sample hangs my IDE, just like in the general profile.


Henk

# re: VS.NET 2005 C# : IDE hang with simply code...@ Thursday, November 03, 2005 4:43 PM

The IDE hangs because it encounters an infinite loop when parsing the two classes. Class B is a subclass of A with itself as the template parameter. It's like a snake eating its tail, my head is hurts.

Police

# re: VS.NET 2005 C# : IDE hang with simply code...@ Thursday, November 03, 2005 4:53 PM

Though it's perfectly acceptable code.

if I have:
public class EntityBase<T>
{
//...
}

and then create:
public CustomerEntity : EntityBase<CustomerEntity>
{
}
it should work, it's possible according to the docs.

Though with this issue, it can't. An IDE should never hang because of the code typed in. It's the compiler's job to throw errors if something's wrong (and it compiles OK, so it's acceptable code)

Frans Bouma

# re: VS.NET 2005 C# : IDE hang with simply code...@ Thursday, November 03, 2005 5:07 PM


This has got to be the coolest bug ever! Good job.

Wilco Bauwer, thanks for compacting the repro.

Police, I like your comment of a snake eating its tail.

You can use the class designer to add a property and it will not hang.

Ron Krauter

# re: VS.NET 2005 C# : IDE hang with simply code...@ Thursday, November 03, 2005 5:09 PM

Your repro makes it happen on my box (VS 2005 Pro RTM on WinXP SP2). devenv goes to 100% CPU. Maybe it's because I have the LINQ Preview refresh for RTM installed with the VS 2005 integration?

Orand

# re: VS.NET 2005 C# : IDE hang with simply code...@ Thursday, November 03, 2005 6:29 PM

i am using resharper. it does not hang at first moment since resharper close brace. deleting closing brace will hang ide.

ace

# re: VS.NET 2005 C# : IDE hang with simply code...@ Thursday, November 03, 2005 7:50 PM

Hi Frans,

I am Suma from C# IDE team. I could repro this on RTM version of Visual Studio Team System too. This is a known issue that got reported by a customer via MSDN feedback center (http://lab.msdn.microsoft.com/ProductFeedback/viewFeedback.aspx?feedbackid=b813ccd7-b714-4dc4-9e24-3f8ecc4527e4) and given the late state of the product cycle, we had to postpone the bug.

As Police has noted earlier, intellisense is ending up in an infinite loop causing the hang.

We are going to look into this for the next version of the product, as we completely agree with you that an IDE should never hang because of the code typed in. As for now, one workaround is to put the 2 interfaces (IEntity1 and IEntity2) that are deriving from the generic base interface IEntityCore<T> in a separate file in the project and this hang would not happen.

Please continue to blog about things you didn't like and/or those that you liked and we would be more than happy to look into them and improve the product for you in future.

And yes, this is a very good catch and thanks to you and to all those that responded and followed up,

Suma

Suma Sushilendra [MSFT]

# re: VS.NET 2005 C# : IDE hang with simply code...@ Thursday, November 03, 2005 8:05 PM

Confirmed here too....
FRESH install of XP with SP2
VS 2005 RTM installed with minimal customizations, colors, etc...
NO other Development environments (VB6-VS2003) installed, I moved them all to virtual machines.

BSchmitt

# re: VS.NET 2005 C# : IDE hang with simply code...@ Friday, November 04, 2005 1:45 AM

Yes, confirmed here. VS.Net 2005 Pro RTM. This box had beta 1 and 2 on it at one point. Don't know if that matters. Infuriating.

John Walker

# re: VS.NET 2005 C# : IDE hang with simply code...@ Friday, November 04, 2005 2:39 AM

Suma: well, as you can expect: I can't wait till Orca's for this to be fixed. So I'll escalate this bug to get a hotfix immediately. It's simply impossible to wait a long time for a fix for an editor hang. The problem with an editor hang is that you've the potential of losing work and that you probably have some code windows open you're working on, which you have to re-setup after you've restarted. Unacceptable.

Next monday, on the launch party of VS.NET 2005 here in The Netherlands, Soma is here and I'll ask him what the policy is for service packs for vs.net 2005, because I truly hope MS isn't simply ignoring bugs till orca's comes along.

Frans Bouma

# re: VS.NET 2005 C# : IDE hang with simply code...@ Friday, November 04, 2005 3:19 AM

>Suma: well, as you can expect: I can't wait till Orca's for this to be fixed.

Hahahaha, you couldn't resist, could you?! :)
But you're right. And because there's already so much known about Orca and so much to do, we already are expecting all bugs to be fixed by Orca :)

Dennis van der Stelt

# re: Placement of Solution Explorer in VS.NET@ Friday, November 04, 2005 7:53 AM

> once you have used dual monitors for development you can NEVER go back
... which is why I never use one. I need to be able to code on the road with my laptop, so I can't allow myself to become dependent on a second monitor.

Joe

# re: VS.NET 2005 C# : IDE hang with simply code...@ Friday, November 04, 2005 11:24 AM

Frans, I've had performance issues with the IDE (intellisense mainly) too. Nothing like what you've found, and mine hangs too with that code you posted with CPU at 100%. But what is even worse is when I use LLBLGen Pro against our database with about 200 tables, the intellisense crawls when accessing anything in the DatabaseGeneric or Database specific assemblies. It's 10x worse if you include those projects in your solution. Sure, it was sorta slow with VS2003, but it is soooo much worse with VS2005 - almost unusable. Although, LLBLGen does create a lot of overloads in some cases, but I still think that should be accounted for by the IDE software. Hopefully they will have an SP. :-(

Sean Chase

# re: VS.NET 2005 C# : IDE hang with simply code...@ Friday, November 04, 2005 11:40 AM

Sean, yeah the overloads are mainly the same methods with different enum types for the first parameter.

You can exclude PredicateFactory and SortClauseFactory from the projects btw, and use the new way of creating predicates: CustomerFields.CompanyName=="Foo"; which also work in VB.NET 2005.

In v2.0 of llblgen pro, I hope to make the amount of generated code much smaller due to generics and partly refactoring :)

Though in general the IDE is indeed somewhat slower. In the Interfaces.cs file with all my interfaces definitions for the runtime libs, it's indeed getting slow at times, almost as slow as the early resharper versions...

Frans Bouma

# re: VS.NET 2005 C# : IDE hang with simply code...@ Friday, November 04, 2005 3:32 PM

Hi Frans,

I'm Cyrus, the developer primarily responsible for IntelliSense in C# 2005. It's a bug in my code that's leading to the hang that you're experiencing. Basically the issue is that we're in the process of doing a graph traversal during our incremental binding and as the graph is infinite regular graph coloring algorithms fail and we end up taking forever.

Why is the graph infinite? Well, consider a simple case like:

class ISet<T> : IMap<T,T> { ... }
class IMap<K,V> : ISet<ITuple<K,V>> { ... }

Pretend we're trying to determine the super type chain of IMap<K,V>. Well, first we say its: ISet<ITuple<K,V>>. But ISet<ITuple<K,V>> is an IMap<ITuple<K,V>,ITuple<K,V>>. But what's that? Well, it's an ISet<ITuple<ITuple<K,V>,ITuple<K,V>>>. But what's that? Well it's an IMap<...

Well... you get the idea.

The compiler is unaffected by this as it does a prescan first to detect these kind of infinite graphs and it truncates them.

However, due to the incremental nature of IntelliSense (where we're constantly changing the graph) we do thignsl slightly differently and we got caught by this particular case. (it should be noted that in all the other infinite lookups due to generics we *do* correctly detect this problem and terminate what we're doing). Note: that's not trying to excuse this current behavior. It sucks and i'm really sorry that you're running into it.

As suma mentioned, this was caught very late in Whidbey and it was felt that there wasn't enough time to fix it and test everything to ensure that the product would be ok.

We're discussing right now what we can do abotu this (both for orcas, and possibly before). Id' be happy to chat more about this if you want. I'll try to check back in with your blog every now and then. If i don't, please ping me through the contact link on my blog so that things don't go unnoticed.

Cyrus Najmbadi

# re: Placement of Solution Explorer in VS.NET@ Friday, November 04, 2005 3:36 PM

Frans: Hi, i'm Cyrus, a developer on the C# IDE team. We considered moving solution explorer to the left side and we even had that in the builds for a while. I was a huge proponent for that model as i feel that tree views should be presented in the accepted location and direction for the culture currently using it. Hence: US cultures would have it on the left (like Windows Explorer, Outlook, etc.)

However, after doing this we got a tremendous amount of negative feedback from people using the product. Everyone has become so used to Solution Explorer being on the right for many versions and they did not like it moving around.

Given that feedback *and* the fact that we have the capability to move these windows around, we felt that this wasn't important enough to change fro 2k5.

Cyrus Najmbadi

# re: VS.NET 2005 C# : IDE hang with simply code...@ Friday, November 04, 2005 7:14 PM

Frans: " In the Interfaces.cs file with all my interfaces definitions for the runtime libs, it's indeed getting slow at times, almost as slow as the early resharper versions...
"

Can you file a bug on this at msdn.microsoft.com/ProductFeedback
?

Please tell us what kind of hardware you're using as well as the interface definitions file and we'll attempt to repro this and address whatever issue you're seeing.

Cyrus Najmabadi

# re: VS.NET 2005 C# : IDE hang with simply code...@ Saturday, November 05, 2005 5:10 AM

Suma: Next release !??!?!? this is totaly unacceptable. move your asses ASAP and get a hot-fix out the door YESTERDAY!!!
don't give us this we will fix the bug in 'next release', WTF !?!??!?

Asher

# re: Placement of Solution Explorer in VS.NET@ Saturday, November 05, 2005 8:01 AM

Thanks Cyrus for this excellent info :). I agree, it's not a big deal, that was also not my intention of the blogposting, I just wondered why it was placed at the right if there's a logical explanation to have it at the left ;).

Frans Bouma

# re: VS.NET 2005 C# : IDE hang with simply code...@ Saturday, November 05, 2005 2:00 PM

Kudos to Cyrus for (a) fessing up to owning the bug and (b) for explaining exactly what the problem is and why they decided against a quick fix that might be more destabilizing.

Now you only need to come up with a patch soon, and I'll be drinking the MS koolaid again.

MSDEV

# re: VS.NET 2005 C# : IDE hang with simply code...@ Saturday, November 05, 2005 3:44 PM

Man this vs 2005 and .net is so buggy and that just after playing with the RTM for a few hours ...

Beside crashing the web worker process they didnt even bother to fix the Merge feature of the dataset when you try to merge DataRows from another dataset with the same structure .. It just keeps creating a second table instead of merging ...

Thanks MS as this bug was reported since a while .. But I guess they just rushed out this release, which is really bad I simply cannot trust a product like that ... Now be quick for the fixes ...

John

# re: VS.NET 2005 C# : IDE hang with simply code...@ Saturday, November 05, 2005 5:31 PM

Neat, I can repro on Win2k3 SP1 VS 2005 Pro RTM (a clean install).

I've been using VS 2005 RTM for the last week and haven't noticed any problems. (Just been doing fairly simple ASP.NET 2.0 stuff.)

The only problem I've found that seems to creep up at least once a day (and it's very, very minor compared to this humdinger, almost embarrassed to bring it up in this thread, but....), is that in the Design view there are times where no matter what control I select, it won't refresh the Properties window. Usually closing the file being edited and reopening it fixes this...

Scott Mitchell

# re: VS.NET 2005 C# : IDE hang with simply code...@ Sunday, November 06, 2005 5:56 AM

Cyrus: thanks for taking the time to clarify this issue and also respect to you for stepping forward and admitting you made the mistake. Yesterday I realized it must be really frustrating for you that you know you made a mistake somewhere (we all do, nothing new about that in programmers land ;)) but that you're not allowed (!) to fix it so potentially millions of people can run into this issue.

Now I know what the reason is for this issue I can avoid it, at least I hope I have avoided the constructs which lead to this issue when I type a '{' somewhere :).

To solve this I think it would be best to release patch roll-ups on a regular basis. In VS.NET you have that great check for updates feature, which could pop up to install the latest roll-up of the patches. I think I speak for a lot of people if I say it's unacceptable to wait for Orcas for a fix for this or other issues with VS.NET 2005. It's abit frustrating but part of life that there are bugs in a software package, so in a way acceptable. What makes that 'acceptance' a real nightmare is the knowledge that you have to live with these annoyances and bugs for a long period of time. Especially because there's no alternative: to which IDE/development environment can be switch to to avoid the bugs? That's why I hope MS will listen and start an initiative to distribute patches on a regular basis to their developer tools customers.

-----
About the slowness in the editor: I'm on a 3Ghz box (Xeon) with raid0 scsi disks and 1gb ram (an expensive dell box, so it has a proper layed out motherboard with no bottlenecks in buses and DMA). So you can say: if it's slow here, it's slow. ;).

VS.NET 2005 is pretty snappy, it sometimes gives you the feeling it's a tiny bit slower than vs.net 2003, but it also offers more functionality, so that's perfectly fine by me. However, in larger files it gets slow after a while. With slow I mean: it can't keep up with the typing. (inserts text sometimes a second after I typed it). The interfaces file I talked about is 4200 lines long and has a lot of interfaces defined inside it.

As I'm currently refactoring .NET 1.1 code to .NET 2.0, the project doesn't compile (it's our runtime library for our O/R mapper, and contains roughly 60,000 lines of code, so not that big). Though in the interfaces file, the one where I'm working on right now, I see slowdowns in the typing response of the editor.

I'd love to create a bug report in ladybug though I'm not going to attach the sourcecode so everyone can download it. Can I send it to you instead?

Frans Bouma

# re: VS.NET 2005 C# : IDE hang with simply code...@ Sunday, November 06, 2005 11:45 AM

Frans: Sure. I'd really like to see what you're running into. I'd also like a chance to chat with your privately about a few things. So please contact me through my blog so we can work through all of this.

As to the subject of patches... well... all i can say is that i totally agree with you. However, i think the community needs to send a clear message that updates, fixes and timely SPs are very important to you. If that message is made then it will be acted on (from up on high to down low in the trenches :) )

Cyrus Najmabadi

# re: VS.NET 2005 C# : IDE hang with simply code...@ Sunday, November 06, 2005 11:51 PM

As a disgruntled former C# MVP, I must say that I'm rather disturbed.

How on earth *any* bug can be deferred to VS Orca when VS Whidbey isn't even official launched is beyond me.

The amount of times I asked for a service pack - including while in Redmond for the MVP summit - is countless.

Bugs must be fixed. And, I'm still dealing with bugs and workarounds in VS 2003 that I raised years back with PSS.

My suggestion?
Don't upgrade to Whidbey, and start demanding that MS rolls out a service pack to fix the current issues. Also found out when service pack 1 is coming out for VS Whidbey before moving your code across.

Simon Stewart

# re: VS.NET 2005 C# : IDE hang with simply code...@ Monday, November 07, 2005 12:03 PM

I'm the Product Unit Manager for C#. Frans and others -- I am sorry that you have encountered this bug. We work hard to ensure a high level of product quality, and it is disappointing to hear that you are encountering this issue.

We are investigating a "hot fix" for this today, and will provide an update when we know more.

We hear the feedback for more frequent service packs for Visual Studio loud and clear. We plan to have a service pack for VS 2005 in the first half of 2006. Thanks.

--Scott

Scott Wiltamuth

# re: VS.NET 2005 C# : IDE hang with simply code...@ Monday, November 07, 2005 4:03 PM

I should have also stated the plan for servicing VS 2003. We are far along in our work on VS 2003 SP1, and are planning to release it in April 2006. Thanks.

--Scott

Scott Wiltamuth

# re: VS.NET 2005 C# : IDE hang with simply code...@ Monday, November 07, 2005 4:26 PM

Thanks for the information, Scott! Much appreciated :) It's great news Microsoft finally takes service packs seriously for vs.net and that service packs will be released :)

Frans Bouma

# re: VS.NET 2005 C# : IDE hang with simply code...@ Tuesday, November 08, 2005 1:41 AM

I could repro with VS Team Edition for Software Dev (fresh install) under WinXP Tablet PC 2005 with the C# developer IDE default settings.

Joshua Blake

# re: VS.NET 2005 C# : IDE hang with simply code...@ Wednesday, November 09, 2005 5:28 AM

No product of sufficient complexity would ever ship if the criteria were that it be bug-free, and this is where they had to draw the line. This problem isn't unique to Microsoft.

Asher: Instead of giving orders is such a rude manner, perhaps you should show some initiative and get off your a** and help them, if this is such a trivial thing to fix? Really, I double-dog dare you. These people have to go home *sometime* in their lives, so unless you're planning to personally cover their salaries while they take orders from you, perhaps you should express your disappointment in a more professional manner.

"Orca's": That's "Orcas", pronounced by the natives as "OR-kuss" (don't ask us to explain the pronunciation of "Sequim"). Like Whidbey, it's an island in Puget Sound. A rather pretty one, I might add, last I was there.

MS: Hotfix would be preferable, of course. Thanks for looking into it.

Keith J. Farmer

# re: VS.NET 2005 C# : IDE hang with simply code...@ Friday, November 11, 2005 7:54 PM

I can produce this bug too. This for sure is a "stopper" bug!! I guess none of MS QA people created template class with property for it. If I were MS's product manager, I would release a hotfix of this bug. This is definitely going to affect manay people. It is a shame!

jamiec

# re: VS.NET 2005 C# : IDE hang with simply code...@ Saturday, November 12, 2005 4:01 AM

Hotfix is in the works at the moment. No idea when/if it will be available for everyone, I hope to post a KB number (which should lead to the information where to obtain the hotfix) soon.

Frans Bouma

# re: SqlServer 2005's installer... Oracle Quality, at last!@ Sunday, November 13, 2005 11:38 AM

Also after installing Sql Server 2005 be sure to do a restart of your system. I had the weirdest error messages in sql server management studio after installing and they all disappeared after a restart.

FH

# re: VS.NET 2005 C# : IDE hang with simply code...@ Monday, November 14, 2005 3:36 PM

I have the same problem as well. Wow. I wonder whats its doing?

Mike R.

# re: Placement of Solution Explorer in VS.NET@ Monday, November 14, 2005 4:49 PM

I think it makes sense to have the window on the right for the same reason so many web sites have moved navigation to the right.

You spend so much time scrolling up and down the windows that having these windows on the right-hand side makes a lot less effort to move the mouse pointer over to the left each time you need something.

All preference though...

Craig Shoemaker

# re: .NET 2.0 GridView for winforms... why is it so slow?@ Tuesday, November 15, 2005 4:42 AM

The problem is, if they're not pushing Winforms because of Avalon, what are the people using Win2k and earlier going to do ?
We've got a fat client written in C++/MFC and we'd love to use .NET for productivity gains. However, Winforms seems so sluggish compared with C++ GUI frameworks, that it's difficult to justify using it.
At the moment we're looking into a number of alternatives

(a) wxWidgets using wx.NET. Seems to have a nice blindingly fast grid. Documentation sucks though, and there is always the worry that wx.NET will fade away. Lack of 3rd party controls.
(b) Gtk#. No grid widget, and documentation really sucks :) Also lack of 3rd party controls.

It beggars belief that MS couldn't have spent more time and effort with .NET2.0 to iron out the performance problems of Winforms/GDI+.

devdave

# re: VS.NET 2005 C# : IDE hang with simply code...@ Wednesday, November 16, 2005 8:37 PM

I have...same bugs...mmm..what a surprise !:P

Javier (CArriat)

# re: .NET 2.0 GridView for winforms... why is it so slow?@ Thursday, November 17, 2005 11:32 AM

I think a great majority of users accustomed to Enterprise Manager is going to hate the new SQL Management Studio. When I first noticed this would be the replacement for EM I started posting about how this was a totally wrong approach, and was appalled at some of the responses from Microsoft. One I can remember quite vividly was: "...and now the SQL Client tools will get A FIRST-CLASS GRID...".

Juan Ignacio Gelos

# re: .NET 2.0 GridView for winforms... why is it so slow?@ Thursday, November 17, 2005 2:11 PM

Hey, this article was broght to my attention by a comment posted to my blog, and I wanted to get back to you directly.

We're sorry to hear you're seeing problems with performance. We're *very* interested to learn scenarios where we can improve, however we need hard data to make that happen. If you have a scenario you'd like us to take a look at, please repro steps and a project up to us at:

http://lab.msdn.microsoft.com/productfeedback/

Additionally there are forums up at
http://forums.microsoft.com/msdn/ for SQL and Windows Forms, they may be able to help you track down issues as well.

Jessica,
Developer, Windows Forms Team

JFo

# re: .NET 2.0 GridView for winforms... why is it so slow?@ Thursday, November 17, 2005 3:55 PM

Jessica, I already filed a bug some time ago:
http://lab.msdn.microsoft.com/productfeedback/viewfeedback.aspx?feedbackid=0ac37d78-964d-41d5-8b6c-07414253b047

I also mailed a repro program to the email address mentioned in that bugreport, it's been received and looked into, which opens with the same dataset data (2 instances so nothing interferes) 2 forms, one with the .NET 2.0 datagrid and one with the .NET 2.0 datagridview. You can clearly see the datagridview is very slow compared to the datagrid. If you want to receive the testprogram too, let me know :)

Frans Bouma

# re: .NET 2.0 GridView for winforms... why is it so slow?@ Thursday, November 17, 2005 9:17 PM

Cool, let's let that go through the normal process. I've double checked to make sure everything's on track. If you're having trouble, you can get to me through my contact link on my blog.

JFo

# re: .NET 2.0 GridView for winforms... why is it so slow?@ Friday, November 18, 2005 2:48 AM

Thanks Jessica :) I hope my repro will make sure the datagridview will render faster in the future, because of now I'll never use it in my applications because it makes .NET winforms apps so sluggish, and it's already the case winforms apps aren't the fastest in respect to user experience (the speed the user experiences). For example VB6 guis are much faster. Ok, they're native components but still...

Frans Bouma

# re: Microsoft, please fix MSDN Feedback Center bug report form.@ Friday, November 18, 2005 3:52 AM

Frans, your wish is my command! :)

I just validated it, people can vote for it now!

Dennis van der Stelt

# re: .NET 2.0 GridView for winforms... why is it so slow?@ Friday, November 18, 2005 5:13 AM

If you want examples and hard data of sluggish performance, just download some of the MS provided winform sample applications :)

http://www.windowsforms.net/Default.aspx?tabindex=4&tabid=49#WinForms%20V2%20Demo%20App

The Money Clone/Stock viewer example is particulary bad. If you show the datagridview (Trend View from the Choose a View combo), scrolling through it (moving the scroll thumb as opposed to mouse wheel) is painfully slow. Also selection is extremely slow. Try it. Select 20 rows and 2 columns. Now drag select more columns, you can see the selection highlight drawing itself row by row. Ok, maybe not that slow ;), but slow enough to have people comment when they see it.

Please don't misunderstand me, I love .NET and VS2005, I just find it frustrating that there is still visible ammunition available for MS detractors to steer people away from using Winforms. Pretty, modern UIs are great, as long as they're quick.

devdave

# re: Microsoft, please fix MSDN Feedback Center bug report form.@ Friday, November 18, 2005 8:22 AM

I have been having the same problems for a while now. I have mentioned this while posting bugs but no one seems to listen.

Raj Kaimal

# re: Microsoft, please fix MSDN Feedback Center bug report form.@ Friday, November 18, 2005 10:06 AM

Frans,

I don't understand why the bugreport form can't be mostly autofilled by the VS IDE. Atleast information such as .NET framework/OS/Language etc. should be autofilled.

One thing MS could benefit a *LOT* from is information architecture. For instance, there is still a lot of confusion about the various "team system" editions. The MSDN downloads and the MSDN subscription management interface is simply retarded, it used to be a LOT worse, but it's still retarded. That is a great example of a developer coming up with workflow/user-interface. For all the time that they spent on creating and maintaining those tools, and providing mounds of information from various sources, I wish they would have simply stepped back, thought of a plan, a put together one easily digestible message or user interface.

SM

Sahil Malik

# re: .NET 2.0 GridView for winforms... why is it so slow?@ Friday, November 18, 2005 1:33 PM

Thanks devdave, I'll load that up.

JFo

# re: Microsoft, please fix MSDN Feedback Center bug report form.@ Friday, November 18, 2005 3:53 PM

This is just another symptom that is pervading Microsoft... the symptom of not developing for customers. Thinking how things SHOULD work, and opting for the easy way, and I blame ASP.Net for it.

There's so many things that take longer than should in ASP.Net, (unless of course, I want to build a GridView that shows the entire Table Contents)

Eric Newton

# re: Microsoft, please fix MSDN Feedback Center bug report form.@ Friday, November 18, 2005 9:04 PM

If you're a GreaseMonkey user, check out my blog post here:
http://weblogs.asp.net/kdente/archive/2005/06/01/409982.aspx

Kevin Dente

# re: Microsoft, please fix MSDN Feedback Center bug report form.@ Saturday, November 19, 2005 12:15 AM

Frans,

Well. It's easy to blame MSFT ;-) But if you was not lazy - then you was able to find report FDBK10336 ( http://lab.msdn.com/productfeedback/viewfeedback.aspx?feedbackid=FDBK10336 ) dated 2004-04-09 (yea !! not a typo - 1.5+ years ago) about same issue !

As well FDBK32608 , FDBK31747 ;-)

TAG

# re: Microsoft, please fix MSDN Feedback Center bug report form.@ Saturday, November 19, 2005 4:41 AM

TAG: well you know, that entry showed me that it was possible to upload the attachment, which even more convinced me the product feedback website is clearly needing some make over.

Kevin: I use the textarea resize extension for Firefox so you can drag the textareas wider, though it should be set by default. It's just plain arrogancy that they don't do that.

Sahil: I'm with you man, you made very good points.

Frans Bouma

# re: VS.NET 2005 C# : IDE hang with simply code...@ Monday, November 21, 2005 1:14 PM

Frans,

When you get a KB Number, shoot it to me, and I'll announce it on www.kbalertz.com

If it's a standard KB, it'll go out automatically, but if it's a KB that you author, then it's not automated.

Please let me know if you get the hotfix.

Scott Cate - Knowledge Base Software

# re: VS.NET 2005 C# : IDE hang with simply code...@ Monday, November 21, 2005 5:49 PM

Scott: will do :) The fix is done, the hotfix is released soon, it's a discussion now whether it will be public (good) or not (bad). Either way I'll blog about it and will send you the KB number :)

Frans Bouma

# re: VS.NET 2005 C# : IDE hang with simply code...@ Tuesday, November 22, 2005 11:20 PM

You guys need *code* to crash VS? I think I'm WAY ahead of you -- I just got VS2005 Standard edition RTM from the MS Launch event. I thought I'd do a little exploration with it and write a couple utilities for my PDA.

So I install the full VS2005 Std. & MSDN library.
I finish the install, restart the PC, defrag
the disk, then before I go to sleep I start up
Visual Studio just to make sure it launches.
Ok, it starts, the IDE displays, and it loads its default www page on startup.

I decide I'm too tired to do any more coding /
checking it out, so *all* I do is go into the
Preferences / Options, change to the
setting that tells it to load an
"blank workspace" instead of the default WWW
home page on startup. I save that change,
exit VS2005. Now, the next day, I rebooted
the PC, and tried to load VS again. *BOOM*
100% repeatedly when I try to load the program it displays its splash screen and instantaneously that's covered up with an crash/error handler dialog --
"Microsoft Visual Studio has encounteed a
problem and needs to close"
AppName: devenv.exe AppVer: 8.0.50727.42 AppStamp:4333e699
ModName: msenv.dll ModVer: 8.0.50727.42 ModStamp:4333e919
fDebug: 0 Offset: 0000e745

It doesn't matter if I start it from the
START menu, or by clicking on a .cs file or
anything else, all it can do now is instantly
crash. I even manually edited the
"General.vssettings" XML file to change the
startup behavior in case it was that change that I made that causes the bug, no, as far
as I can tell it doesn't effect it.

So, yes, VS2005 blows up without even a SINGLE
line of code EVER having beed viewed / edited /
compiled by its IDE. Way to go Microsoft,
I thought I needed my new AMD-X2 dual core
PC to accellerate your applications, but with
new VS2005 technology you can make them crash
faster than the blink of an eye!

Chris

# re: VS.NET 2005 C# : IDE hang with simply code...@ Thursday, November 24, 2005 8:00 AM

FTR, happens to me too.

Bil Simser

# re: VS.NET 2005 C# : IDE hang with simply code...@ Friday, November 25, 2005 9:02 AM

Is there a KB about this at last?

Szokelizer

# re: VS.NET 2005 C# : IDE hang with simply code...@ Friday, November 25, 2005 9:11 AM

No KB out yet, and for what's worth: the fix won't be public, you will have to call PSS.

Great way to deal with customers... :/

Frans Bouma

# re: VS.NET 2005 C# : IDE hang with simply code...@ Saturday, November 26, 2005 10:03 AM

We are working with Frans offline to solve this problem, and a Knowledge Base article is in the works with all the details.

In my post above, I mentioned our current thinking on the timeline for Visual Studio 2005 servicing releases in my last comments. Soma, head of Developer Division, has posted more information about our next steps: http://blogs.msdn.com/somasegar/archive/2005/11/08/490694.aspx

Visual Studio's support page (http://msdn.microsoft.com/vstudio/support) offers support-related information, including links to the MSDN Product Feedback Center, the MSDN Forums, and the Visual Studio Solution Center, where you can find the latest KB articles. For KB's, there are per-product RSS feeds.

We are in the MSDN Forums and looking at bugs reported through the Product Feedback Center. Please don't hesitate to take advantage of these resources when you run into difficulties. Our goal is for you to have a great experience with our products, and we regret the bug that Frans and others have encountered.

--Scott

Scott Wiltamuth

# re: VS.NET 2005 C# : IDE hang with simply code...@ Friday, December 02, 2005 11:38 AM

i just open vb.net 1.1 by clkg the program menu, forgetting that i had moved some folders containing applications i had tinkad with eureka a see sometin like a blue screen of "debt" when i click on the link for one of those applications- instead of the normal startpage i see a full screen slide displaying my error path. is this fun stuff or what?

ocheikwu john agbo

# re: Fix for VS.NET 2005 C# IDE hang is now available (through PSS)@ Sunday, December 11, 2005 10:17 AM

Fair comment. And an interesting question posed about when a fix becomes a public one or one released through PSS.

Why aren't all fixes public anyway? Is MS concerned about the quality of the fixes? Surely nothing that a simple EULA can't solve.

Wim Hollebrandse

# re: Fix for VS.NET 2005 C# IDE hang is now available (through PSS)@ Sunday, December 11, 2005 12:52 PM

*sigh*

I agree. Yet one more thing I have to do that takes time out of my day.

URL to hotfix = good

Calling for a download URL = bad, inconvenient, waste of time

Sean Chase

# re: Fix for VS.NET 2005 C# IDE hang is now available (through PSS)@ Sunday, December 11, 2005 6:27 PM

They do this to control piracy.

y

# re: Fix for VS.NET 2005 C# IDE hang is now available (through PSS)@ Monday, December 12, 2005 3:24 AM

They've talked a million times about why they do it that way. If they don't release a fix, it's because it hasn't been adequately tested, and they want to be able to have a tech, who is assigned to solve that problem, talk to the person having the problem, so they can collect additional data. If enough people have the problem, and enough people report positive results without side effects, they release it.

They don't just do it to spite you, and it's not because PSS thinks you're not an adult.

Robert McLaws

# re: Fix for VS.NET 2005 C# IDE hang is now available (through PSS)@ Monday, December 12, 2005 3:41 AM

A million times, huh? Ok, lets grab your analogy.

How many people have experienced the 'assembly locked' problem during ASP.NET project compilation? How many people have experienced vanishing user controls on winforms apps? I bet literaly thousands if not more.

The fixes for those problems are years old. Still not enough tested? Yeah right.

Plus: we're not talking about a change here, we're talking about a code-bug, which is fixed. That's something else. A code bug is a different thing than a design flaw.

You apparently never run into problems with MS software, you're always happy and smiling. That's great, but not everyone has that experience and when a developer runs into a bug, the fix for that bug should be available on a public website, like _every other software vendor on the planet_ does.

Frans Bouma

# re: Fix for VS.NET 2005 C# IDE hang is now available (through PSS)@ Monday, December 12, 2005 3:53 AM

Oh, and Robert, I know what the real reason is, as told me by a given MS employee, and it's far from what you're claiming.

Besides that, it's a HOTFIX. Every developer out there knows what 'hotfix' means: a fix which has been tested so-so but could fail. This also can and should be (and also is) stated in the EULA.

Frans Bouma

# re: Fix for VS.NET 2005 C# IDE hang is now available (through PSS)@ Monday, December 12, 2005 6:04 AM

If you have a premier support contract that most big companies have you can always get these type of hotfixes.

And I believe everybody knows someone that has access....

Dennis Mulder

# re: Fix for VS.NET 2005 C# IDE hang is now available (through PSS)@ Monday, December 12, 2005 8:55 AM

Look at it like this:

The bug you are experiencing slipped through somer serious testing.

The fix you are being issued with has not even had that level of testing...

What MS should do is roll up these fixes once proven solid into a package smaller than a service pack.

[)

Damien Guard

# re: Dictionary<TKey, TValue> vs. Hashtable() tip@ Monday, December 12, 2005 10:14 AM

You should use TryGetValue instead. It has an out parameter and returns true/false if the value was found. That way you will only be doing a single lookup.

Wilco Bauwer

# re: Dictionary<TKey, TValue> vs. Hashtable() tip@ Monday, December 12, 2005 10:15 AM

What timing, I was just looking into this same problem. Thanks for the heads up.

Bill

# re: Dictionary<TKey, TValue> vs. Hashtable() tip@ Monday, December 12, 2005 10:24 AM

Thanks Wilco, that's indeed another way to do it and even more efficient, I'll add that to the post.

Frans Bouma

# re: Fix for VS.NET 2005 C# IDE hang is now available (through PSS)@ Monday, December 12, 2005 11:38 AM

The fix is released publicly once it has gone through a thorough testing processes. When you call PSS, they tell you that the fix has not be completly tested.

laptop heaven

# re: Fix for VS.NET 2005 C# IDE hang is now available (through PSS)@ Monday, December 12, 2005 11:48 AM

No tests are performed on patches once they're released. So if a test is released today, it still won't receive other testing than the tests it has got before today, even if you call PSS in 2008.

The crap about 'it's not YET thouroughly tested' has to stop: fixes ARE tested, but once they've been released to PSS, NO tests are performed on them, period. So waiting for tests is useless, those tests will never happen.

Try to get a fix for vs.net 2003, like a patch which was released in May 2003. That fix hasn't received any more tests than the fix of this particular blogpost.

Frans Bouma

# re: WTF: "Soap Serializer does not support serializing Generic Types" ??@ Monday, December 12, 2005 12:43 PM

I have to ask -- why are you hung up on the SoapFormatter? The SoapFormatter does not provide significant advantages in terms of interoperability or performance. It's not the right way to build web services and it's a pretty clunky way of building remoting apps. The binary formatter is well-suited for tightly couple remoting apps, and if that's what you're building why not just use it?

Steve

# re: WTF: "Soap Serializer does not support serializing Generic Types" ??@ Monday, December 12, 2005 12:47 PM

Personally I don't care what formatter is used, but as I write a library which is used by others, I can't make the decision for them. If someone now uses my library and the soapformatter on .NET 1.x, it works ok. If they upgrade to the new library it won't because of this.

Frans Bouma

# re: WTF: "Soap Serializer does not support serializing Generic Types" ??@ Monday, December 12, 2005 2:06 PM

Well yes that is true. There were talks of deprecating SoapFormatter around the beginning of .NET 2.0. I think atleast until Beta2, even the reference of SoapFormatter was in a seperate dll (unlike 1.1), So I'm not shocked that this has become the stepchild.

Frankly - I'm okay with that :).

Now only if they would fix the XmlSerializer and we could all get along.

Sahil Malik

# re: WTF: "Soap Serializer does not support serializing Generic Types" ??@ Monday, December 12, 2005 3:34 PM

Hi Frans, personally I agree with Steve but I also understand your point of view. Probably Microsoft did not invested on SoapFormatter because XmlFormatter should be the "future SOAP Formatter".
In fact XmlFormatter serializes and deserializes generic collections.

Paolo Pialorsi

# re: Fix for VS.NET 2005 C# IDE hang is now available (through PSS)@ Monday, December 12, 2005 6:22 PM

Hey Dennis not all hotfixes make it to the Premier Support site. :(

Maybe it's oversight but I somehow don't think so.

BTW, this hotfix ISN'T availble through Premier Support--unless they're just filtering me. ;-)

Greg Wojan

# re: About the stupid Java vs. .NET article@ Wednesday, December 14, 2005 4:41 AM

Agreed. OSNews picked it up, and in their usual sillyness made a mockery of it: http://www.osnews.com/comment.php?news_id=12963&limit=no&threshold=-1

(my comments are under jayson.knight if anyone cares to read them :-) ).

*sigh* one day we'll all learn to get along. Neither .Net or Java is going anywhere...interoperation is the key.

jayson knight

# re: About the stupid Java vs. .NET article@ Wednesday, December 14, 2005 6:14 AM

Well put.

Jeremy

# re: About the stupid Java vs. .NET article@ Wednesday, December 14, 2005 8:33 AM

Sorry Frans but I do not agree that Java is big step ahead of us. Java has a head start, so it logical that a lot of experiments were done on that platform first. But what you see is that all the "sexy" stuff (AOP, O/R Mapping, TDD) which is on Java has also been ported to .NET. A lot of times there's even a better solution (for example Unit Test definition with the help of attributes).

.NET is not only on track but with the current version (2005) even ahead of the competition in some points. Software Engineering has nothing to do with the platform your developing on. So I don't see why .NET would be better or worse than Java.

The way Java and .NET are used today you can say they are completely equal in general. Yes .NET has better web stuff, J2EE is better in eeehm other stuff ;). But in general they're equal.

Saber Karmous

# re: About the stupid Java vs. .NET article@ Wednesday, December 14, 2005 8:42 AM

"But what you see is that all the "sexy" stuff (AOP, O/R Mapping, TDD) which is on Java has also been ported to .NET"
Though still inferior to their Java brothers. AOP for example is much more mature on Java than it is on .NET and O/R mapping... there's no O/R mapper on .NET which currently can beat Toplink or can offer the features the combination JBoss + Hibernate 3 can offer (as .NET doesn't have cross-appdomain object awareness, so no object caching across serverfarms).

"Software Engineering has nothing to do with the platform your developing on. So I don't see why .NET would be better or worse than Java. "
New technology in general are often more used on Java first than on .NET. With new technology I for example mean new ways of developing software, engineering software processes etc.

I don't think that's only caused because Java had a headstart, I also think it's in general caused by how the average Java developer develops/ engineers software compared to the average MS developer.

Frans Bouma

# re: About the stupid Java vs. .NET article@ Wednesday, December 14, 2005 8:48 AM

Great point Frans - I particularly hate those ____ vs. ____ articles. I remember in high school the martial arts magazines would have every month a Aikido vs Tae Kwon Do type thing. The car magazines would have Ford vs. Chevy or Porsche vs Ferarri. That whole genre is _________ vs. _________ is so lame but people eat it up for sure.

Bill

# re: About the stupid Java vs. .NET article@ Wednesday, December 14, 2005 9:08 AM

.NET RULEZ JAVA SUKZ !!! JAVA iZ oWn3D !! HAXORS RULLE!!

HAxXOR

# re: About the stupid Java vs. .NET article@ Wednesday, December 14, 2005 10:56 AM

An average (bright) life of a programming language is around 10 years. It's about time for Java (since 1995).

A

# re: About the stupid Java vs. .NET article@ Wednesday, December 14, 2005 1:34 PM

Well as a reader comments

"I am still waiting for the grandiose benefits not of Java or C++ or C# or any of the latest scripting languages but of the whole gigantic OO paradigm and its vaunted benefits. I am still waiting for them to materialize after how many decades now?..."

Check out these
http://www.corba.org/success.htm

how many are .net applications...

A.M

# re: About the stupid Java vs. .NET article@ Wednesday, December 14, 2005 6:04 PM

.NET vs. Java? VB vs C#? X vs. Y? 2 vs. 3?

here's the real question: Which one solves the business needs for the business scenario presented?

X vs. Y is an utterly worthless dichotomy in today's development world. use the tools that get the job done.

Derick Bailey

# re: About the stupid Java vs. .NET article@ Saturday, December 17, 2005 3:05 PM

One word, "FREE"

LR

# re: Dictionary<TKey, TValue> vs. Hashtable() tip@ Saturday, December 17, 2005 11:20 PM

This is another one of those cases where Microsoft is using Exception incorrectly, IMHO. A key not being in a collection should not be an 'exceptional' situation - it's quite common.

While the fix is easy enough this is not nearly as logical as checking for null on a result, especially given that there was precedent.

Lame to no end...

Rick Strahl

# re: Dictionary<TKey, TValue> vs. Hashtable() tip@ Monday, December 19, 2005 9:36 AM

Well, was there anything wrong with the index operator returning null if the key was not found? Many lines of code rely on this behavior. A double check (if ContainsKey, then retrieve) introduces a potential race condition. Is it really an 'exceptional' condition for hashtable to have an empty slot?

Rafalg

# re: About the stupid Java vs. .NET article@ Tuesday, December 20, 2005 2:47 AM

>>Saber Karmous
>>Sorry Frans but I do not agree that Java is >>big step ahead of us.

Well sure .net languages are pretty much equal to java or even a bit better.
and sure we are starting to get some decent ormappers and aop frameworks etc.

what we dont have is the skill as the java developers got.
sure we got some bright .net coders but in general .net code tend to be more "Class bla = new Class()" versus javas fat j2ee dependency injection for the entire framework.

they know how to build apps... most .net coders dont..

and one of the reasons for that is that MS will give its developers halfbaked solutions such as datasets , dlinq , some messed up tdd guidelines etc.

and the majority of the ms community will swallow that and never ever look elsewhere for other solutions.

//Roger

Roger Johansson

# re: About the stupid Java vs. .NET article@ Wednesday, December 21, 2005 1:37 AM

Frans,

Just curious, I've been seeing lots of Ruby on Rails discussion. Have you looked at it? If so, what do you think?

John Walker

# re: Jon Skeet on Eclipse vs. VS.NET@ Thursday, December 22, 2005 1:09 PM

Personally, I can't wait for JetBrains to release their .NET IDE :)

Matthijs van der Vleuten

# re: Jon Skeet on Eclipse vs. VS.NET@ Thursday, December 22, 2005 1:42 PM

Ugh, Visual Studio annoys me. BUT, it has the best debugger of any IDE on the market. I'll stand behind that one.

Scott

# re: Vista stores metadata INSIDE the object itself?@ Friday, December 23, 2005 4:10 AM

Is it possible that is store the meta-data using streams?
That way it is in the same file, but it is not copied by default for web/email, etc.

Beside, I can certainly see reasons why I would want to send my meta-data often.

It's also interesting to know _what_ metadata they are storing. Tagging information is something that the OS handles, change tracking is in the realm of Word.

Ayende Rahien

# re: Vista stores metadata INSIDE the object itself?@ Friday, December 23, 2005 5:53 AM

I was very sceptic too when this news was out. Nice to see that you think so. I'd like to see someone of the "internals" to explain and motivate this choice.

Stefano Demiliani

# re: Vista stores metadata INSIDE the object itself?@ Friday, December 23, 2005 6:35 AM


Metadata is stored in alternate NTFS streams (there is a great alternate NTFS streams explorer available over at codeproject.com), but applications like Word/Excel/... tend to also save some of the metadata inside the files : author, locale, ...

anon

# re: Vista stores metadata INSIDE the object itself?@ Friday, December 23, 2005 7:56 AM

OLE Compound storage uses NTFS alt. streams as a mechanism to store this stuff iff the file type itself doesn't do it. Word (and all office docs) store things such as title, page count etc dirctly inside the document (i.e. they are native OLE compound storage types). This is why the values persist even when you email / copy to a CD.

Hal Angseesing

# re: Vista stores metadata INSIDE the object itself?@ Friday, December 23, 2005 11:31 AM

I have a feeling there's more to this than meets the eye. Since Windows is in control of the filesystem, whose to say the simply don't strip the additional stream before it's "exportable" to anywhere other than another location in the filesystem. Or, whose to say the don't encrypt the data w/ the machine key or something of that matter.

I find it extremely hard to believe that this hasn't been a concern or consideration of MS's and once again some silly CNET jounalist who knows 1/4 of the story is commenting with doing his/her homework.

James Alexander

# re: Vista stores metadata INSIDE the object itself?@ Friday, December 23, 2005 11:41 AM

James: I thought of that too, but for the file system, it's not known what the destination of the data will be. So if it has to strip it off has to be told to the filesystem, which then makes it fragile for mistakes.

Frans Bouma

# re: VS.NET 2005's design time databinding, it's seriously broken.@ Friday, December 23, 2005 1:54 PM

Ya, IBindingList has issues. Filed some bugs against it during B2 but they insisted that they weren't bugs but by design.

anon

# re: Jon Skeet on Eclipse vs. VS.NET@ Friday, December 23, 2005 3:50 PM

I use the Resharper VS add-on and it has many of the features that VS lacks.

The newer 2.0 beta version is 20M is size. A lot bigger than the current size. I hope it will have a lot more features. Performance could be an issue.

Abdu

# re: VS.NET 2005's design time databinding, it's seriously broken.@ Saturday, December 24, 2005 11:20 AM

Frans, I was expecting you to say that DataSet works fine, but everything does not (which is the norm unfortunately). Seems like there should be much better designer support in general for custom classes/collections, and I'm not just saying that because I use LLBLGen Pro. I know tons of people that feel that way too. Are you having any luck with your new version of EntityCollection working with the ObjectDataSource? Just curious because I've been writing wrapper classes so I can use that with the GridView/ODS. Seems to work OK as long as you don't use the VS designer and know what tags/attributes to set in the HTML code view. Anyway, just curious.

Sean Chase

# re: Vista stores metadata INSIDE the object itself?@ Saturday, December 24, 2005 4:15 PM

If it is stored in alternate NTFS streams, it is probably only copied with the document if it is copied to another location on NTFS, not when it is copied to a non NTFS system, or attached to an e-mail.

Serge van den Oever [Macaw]

# re: Vista stores metadata INSIDE the object itself?@ Saturday, December 24, 2005 5:39 PM

FWIW, the NTFS metadata storage techniques you guys are talking about have been in Windows since W2K. And the OLE metadata since before Windows 95.

Whether Vista uses the same techniques or not, the only "news" here is that people might acutally start using this metadata now that it will be so prominently featured in the new UI.


Chris

# re: Old-skool demoscene effect in C#: Rotozoomer@ Sunday, December 25, 2005 4:52 PM

89-2002? That was college time for part of it wasn't it? Where did you get so good at everything else if this is what you were doing ;-) ?

Bill

# re: Old-skool demoscene effect in C#: Rotozoomer@ Sunday, December 25, 2005 5:47 PM

Awesome, takes me back ;)

OmegaSupreme

# re: Old-skool demoscene effect in C#: Rotozoomer@ Sunday, December 25, 2005 5:49 PM

Funny that you too had some effect coding going today :)

Ramon Smits

# re: Old-skool demoscene effect in C#: Rotozoomer@ Monday, December 26, 2005 5:57 AM

"That was college time for part of it wasn't it? Where did you get so good at everything else if this is what you were doing"
Demo programming is about being creative with limited resources and you learn a lot of things, like all kinds of algorithms, algorithm optimization, and keep going when others quit. It still pays off. Even inside an O/R mapper core: I always think "If I pre-calculate that into a table, I can speed up the algorithm a lot", simple things others won't consider for a minute. :)

Frans Bouma

# re: VS.NET 2005's design time databinding, it's seriously broken.@ Tuesday, December 27, 2005 12:36 PM

See this post:
http://clariusconsulting.net/blogs/kzu/archive/2005/05/28/ComponentsNotBack.aspx

Design time binding to custom business objects is a total no show, ASP.NET 2.0 is a huge step backwards from ASP.NET 1.0

The Guest

# re: Jon Skeet on Eclipse vs. VS.NET@ Wednesday, December 28, 2005 2:40 PM

I finally uninstalled Resharper today, because it slowed down the Studio 2005 to such an extent that it became impossible to work. Well, I confess my laptop is a pretty antique one (Celeron 1,7Ghz, 256Mb), but I can't do an upgrade right now.

Yan

# re: Vista stores metadata INSIDE the object itself?@ Wednesday, December 28, 2005 4:14 PM

Chris, streams are part of NTFS since its conception (the original purpose was to be able to serve files to Mac).

I know of at least one virus that used this method to hide itself. And it's _very_ useful in certain instances.

Ayende Rahien

# re: VS.NET 2005's design time databinding, it's seriously broken.@ Thursday, December 29, 2005 5:11 AM

"Are you having any luck with your new version of EntityCollection working with the ObjectDataSource? "
The ObjectDataSource is useless. At post-back, it creates a NEW instance of the bound object(s) and sets the values it has NOW as the values of the objects. Which is ofcourse stupid, because you lose any form of change tracking inside the bound objects. Perhaps the MS developers thought that change-tracking is something only dumb people would use, but I think they are the ones who haven't thought out the scenarios of using the objectdatasource.

Besides that, the 4 operations you have to define is also silly. What if I want to call into a BL method to retrieve new data?...

Frans Bouma

# re: Teaching only Java is bad?@ Friday, December 30, 2005 6:08 AM

Wonderful words Frans. Are the programming principles that must be well understood and not the language itself. However, don't deprecate Java language for teaching: Java is a good language for learning OOP programming (for example Java is ideal to learn interfaces concepts).

Stefano Demiliani

# re: Teaching only Java is bad?@ Friday, December 30, 2005 6:26 AM

Of course you're right, it _shouldn't_ matter what programming language is used to teach students how to develop software. But unfortunately, and I think that's what Joel's after, there are just too many "Java/VB/C#/... Schools" out there that do no more than teach students the syntax of a language. These schools churn out mediocre programmers (the "I know HTML so I am a software engineer" types of the late '90s) like no other. And you know what? It drives me crazy to have coworkers that don't know shit about developing software. People whose code you could find at the Daily WTF. People you keep explaining over and over that Exceptions aren't the best way to report back to a caller. People that can't analyze problems worth a dime "hmm, this NullReferenceException must be because the pooling size of the SQL Server is too small". Yeah, whatever.
I'd like nothing more than for the programming language not making a difference, but unfortunately nowadays students aren't being taught "principles", or "theory", they are just filled with enough knowledge to land them a job in an industry that takes on anyone that's willing to code... Quantity over quality. Like here in the Netherlands. We need to be Europe's center of knowledge, need to become a knowledge based economy. And for that we need a lot of people with higher education. And since numbers are more important than actual results, the consequences of this are becoming clear: it breeds inflexible people. Sure, they can regurgitate code they were learned while in college or university, but they don't understand the code, they don't understand the principles, and they cannot look past the "syntactic su