Archives
-
Database normalization and Microsoft sample applications
Some time ago we found severe normalizations issues with Microsoft's PetShop implementation (which by the way were fixed in the 3.0 version).
-
Optimistic locking strategy
When a user gets an optimistic locking exception, his usual behavior is to confirm the changes he made overwriting the existing ones.
-
Redmond and notebook batteries
I'll be in Redmond next week. As each flight to SEA-TAC is a long one, and the time I spend in planes is good for coding because noone interrupts me, and most of the times I get an upgrade to Business Class in United the seat does not have a notebook plug, I bought a Valence N-Charge battery.
-
ObjectSpaces PDC Mapping Utility
ObjectSpaces PDC 2003 Samples and Mapper Utility This is the ObjectSpaces samples and tools that we distributed on the ADO.net samples CD at PDC 2003. Requires the PDC release of Visual Studio.
[via GotDotNet: Samples]These are the tools Luca Bolognese used during his presentation on ObjectSpaces. One of the tools lets you create a database schema based on a set of classes. The other lets you create the XML files to map an existing schema to a set of .NET classes. -
Managed LDAP
-
Improving DataSet Serialization and Remoting Performance
There's a new KB article on the subject.
-
WinFs, Aero and Hailstorm
Remember Project Hailstorm (later called My Services)?
-
Solving the Object -Relational impedance mismatch the other way
Ted Neward suggests solving the object-relational impedance mismatch by adding relational features to languages, instead of mapping relational databases to objects.
-
Avalon is a Luxury item
Let's face it.
-
VSIP Extras - VSIP Extensions in managed code.
Now you can write VSIP code in C#! I hope this will reduce the number of times I hear 'it was an extra AddRef' ;)
-
Object Relational Mapping BOF
When you have a booth in a MS conference, you get 3 'Exhibitor Staff' badges and one 'Attendee' badge. I usually get the Attendee one, but as this time we wanted to be present in most conferences, and I needed to be in the booth when the Exhibit Hall was opened, someone else from the DeKlarit team got the Attendee badge.
-
Smart Client BOF & Managed InfoPath
I was in the Smart Client BOF. Peter Provost blogged about it (and I missed the Westin because I was too tired).
-
Service Oriented Analysis
The roundtable on Service Oriented Analysis was interesting, because it showed the culture clash between 'Pure Object' guys and 'Service Oriented ' guys.
-
ObjectSpaces
Some information about ObjectSpaces that was given in Luca Bolognese's presentation:
-
Avalon
I was really busy during PDC and I did not find time to blog or even to keep up with email (BTW, the DeKlarit booth stuff arrived on Monday afternoon so it was ready for the Exhibit Hall reception).
-
DeKlarit's minimalistic PDC's booth
The guy with half the booth is stuck in San Diego, and he will be arriving to L.A. around 2 PM, so it seems the Exhibit Hall will open and our booth will still be unfinished.
-
OT: How do you walk?
-
Database independent ADO.NET
One of the main complains about ADO.NET it's that you cannot write code that is database independent.
-
Ruby and Code Generation
I've been playing with Ruby the latest couple of weeks (and I'm not the only one ;).
-
Miguel de Icaza on .NET vs J2EE
Miguel has interesting comments about Java and .NET.
-
DataSets and Serialization
We all know DataSets are not good when you want to serialize them, because they always are serialized as XML + the XML-Schema even if you are using a binary formatter. This implies you get a big serialization payload and bad serialization performance each time you transfer a DataSet using Remoting or when you store a DataSet in a ASP.NET session variable, just to mention two common scenarios.
-
DataSets and Serialization
We all know DataSets are not good when you want to serialize them, because they always are serialized as XML + the XMLSchema even if you are using a binary formatter. This implies you get a big serialization payload and bad serialization performance each time you send a DataSet using Remoting or when you store a DataSet in a ASP.NET session variable, just to mention two common scenarios.
-
The problem with code generators
It's quite usual to hear "the problem with code generators is that if you change the code they generate, you lose the changes the next time you generate the code".
-
Surface area
I'm really happy to hear that see Don Box keeps talking about that they need to reduce surface area of the .NET framework.
-
Abstraction vs Concretion
When we design software we usually build abstractions on top of other abstractions that we or someone else built.
-
Platforms and surface area
Both .NET and Java want to win the heart of the 'corporate developer' (aka known as the VB6/Powerbuilder/OracleTools/VisualFoxpro developer). If there is a winner in the .NET/Java war, it will be the one who captures that market.
-
SYS-CON Media Readers Choice Awards
These are the total number of votes for all of their magazines:
-
New Java APIs
Two more JSRs from the 'let's catch .NET' chapter:
-
NewzCrawler 1.5
There's a new version NewzCrawler Beta. I did not found a 'what's new' page, so these are the features I found:
-
DataSets magic and VS.NET Project Files
I needed to parse a .csproj file (the C# Visual Studio .NET project file) and add a few references to some assemblies in our nant/nunit test suite.
-
C# to VB.NET Converter
I confess that I never thought I would need a C# to VB.NET converter, but today after coding some sample app for a customer in C#, he said 'mmm I wanted it in VB.NET, can you convert it'?
-
PDC
I'll be there too.
-
MS Application Blocks
On Friday, I met Diego Gonzalez (yes, you need Passport to login ;), from Lagash (in spanish). He is one of the guys writing the MS Application Blocks.
-
Novell acquires Ximian
-
Mozilla Firebird 0.6.1 Released
-
Free VSIP!!
Now anyone can download the Visual Studio Integration Program SDK and write VS.NET-integrated tools!
-
Mailinator
Need a disposable email address so you can sign up for some web site, quick? You've already got one, at Paul Tyma's clever Mailinator. Just send an email to any address @mailinator.com. Your email address already exists. Get your email sent here, THEN come check mailinator. Your mail will be waiting. More proof that great UI design is done by taking away, not adding things.
-
Code Generation vs OO
Early and Adopter suggest that sometimes a good OO design can get the same results as code generators.
-
Code Generation
-
Last week in Redmond
I was at a MSFT event for the last 2 days on future VS.NET / .NET FX stuff (I'll avoid the pre-MSFT-Scoble-esque Longhorn-rocks-but-I-can't-talk-about-it-because-it's-NDA posts). I ran into a bunch of Software Legends who all knew me.
-
MSDN Webcast
I'll be doing a WebCast about DeKlarit on July 11th :
-
Writing code is stupid
-
MSDN Magazine - Architecture of an Autonomous Application
There is an article in July's MSDN Magazine that even if it talks about Fiefdoms, it discusses the issues I've been talking about on how to map Entities to DataSets.
-
Layers, messages and domain models
In some previous posts I was trying to explain why I think is better to use a message-based approach for developing n-layer applications instead of using a domain model. In some posts I've focused on the DataSet, but its not really about the DataSet but about the way of exchanging data between layers (notice Im saying layers, not tiers). This time I'll try to explain myself better ;).
-
DataSets and Table Module
There seems to be some confusion between DataSets and the Table Module Fowler PoEAA's pattern.
-
MagicForm
[via Larkware News]
-
JavaOne Recap
JavaOne was interesting but I really did not feel excited about it.
-
O/R Mappers
-
Project Rave
It's a new IDE from Sun.
-
JavaOne - Avoid EJB
By the way, it was fun to hear Ted Neward recommending to avoid EJB while doing a presentation inside the Oracle booth ;).
-
Borland Party
I've just returned from the Borland Party at JavaOne. It was in a local club, and it was really fun. A lot of people dancing and a good 80s rock-and-roll band. I enjoyed a lot the Sweet Child O'Mine/New Sensation/Blister in the Sun combination.
-
JavaOne One
So, I'm in the JavaOne Gaming Center. I never played a Java game, but if you attend JavaOne it seems that there are Java Games everywhere.
-
The Entity Design Pattern
There is a good article in CodeProject about the Entity Design Pattern. The guy who wrote it is definitely in the same frequency as DeKlarit.
-
More on caching
Ron Jacob's presentation on Caching was based on the patterns & practices document about Caching.
-
Accidental Tourist
I'm in San Francisco waiting for JavaOne.
-
Caching tip
Ron Jacobs showed this one in his Caching presentation. The idea is that you can use the ASP.NET cache from any application, you don't need to be inside a Web app:
-
TechEd summary
I've attended to the last 3 TechEd editions and this one was the best by far. There were a lot of people everywhere, including the exhibit hall. I made more demos this time than in any other event.
-
Cafe au Lait RSS
Cafe au Lait now has an RSS feed. I don't use Java much anymore, but I still like to keep in touch with what's going on. Subscribed.
-
MS internal video
Some Microsoft guys were making a video, interviewing .NET partners and developers, asking them general questions about its relation with Microsoft. They asked me to participate so I had a 10 minute session with them. I got free make-up ;)
-
Data Service Patterns
Today I've attended to Data Service Patterns (Web303), by Steve Swartz.
-
My presentation at TechEd
It does look not very good to blog about my own presentation, but someone has to do it ;). I'm getting used to it ;).
-
Moving to Firebird/Phoenix
The only problems I had where simply bugs in the IE CSS rendering engine, and it looks like implementing something like max-width can't be done without a change to the underlying OS.
-
Clemens' Session
DEV357 'Building Distributed .NET Applications' was the only conference that I was able to assist, as I was really busy in DeKlarit's booth. Paul said it was the best overall session, so it seems I made the right choice ;).
-
.NET Wrappers for Gecko
In case you missed it, A.N.Other added a comment to my recent post on Mozilla Firebird, succintly pointing to a project which is building .NET wrappers for the Gecko engine using Managed C++. I've not yet had a chance to look into this any further.
-
RE: Critique of Disappointing Session at TechEd
I attended a session entitled "Object-Relational Mapping As a Foundation for ADO.NET Database Access" here at TechEd.
-
Richard Klees
All speakers in TechEd can have a training session with Richard Klees. In our company we have a video where he teaches how to make good presentations, and it's quite good. When I knew I could have a session with him I applied for one, and it happened today.
-
DB2 and .NET II
I had request for more info on this, so I went to the IBM booth and asked for a demo of it.
-
Another .NET refactoring tool
-
SQL Server Reporting Services
This white paper has a good summary of Reporting Services features.
-
Bloggers meeting
I missed the Teched bloggers meeting :-(. I needed to stay in the booth while the Exhibit Hall Reception was taking place, as there was a lot of traffic. By the way, the food was quite good, and the free beer too ;).
-
DB2 and .NET
An IBM guy was sit next to me with some DB2 / .NET Powerpoints, so I asked him about it. It seems DB2 is going to support running stored procedures in managed code!
-
Late to Teched
OK, it was a long trip but I'm finally here in the speaker's room trying to keep up with email.
-
Java news
There is a prototype for J2SE 1.5 new language features
-
Redmond - June 25/26
Who else will be in Redmond in the week of June 25/26?
-
.NET Pet Shop
John Lam found the same problems we did with the .NET Petshop database schema. Our article was written looking at the .NET PetShop 1.5 version. In the 2.0 version the database schema is still worse.
-
JavaOne
Am I the only dotnetweblogger who is going to attend to TechEd and JavaOne?
-
TechEd
I'll be giving a talk on "Agile Development of Database Based Applications with Visual Studio.NET" (DEVL03).
-
ThinkGeek T-Shirts - Binary People
-
RE: Don Box and the end of the browser
Thanks Brad for the heads up.
-
Don Box and the end of the browser
I tend to agree with Don Box in that the browser is dead. I do most of my web navigation using NewzCrawler. But if Don thinks the browser is dead is because he does not need to read his own weblog!. I hate to have to open a new IE window to read Don's posts ;).
-
List of Database Refactorings
List of Database Refactorings Pramod Sadalage has started to capture the various database refactorings we use in evolving databases. This list will grow as Pramod steadily works through documenting the refactorings.
-
Typed Datasets and .NET Remoting
Mads took the red pill and it's trying Typed Datasets, and has some doubts about how to use them with Remoting. I'll share our experience with DeKlarit.
-
Stored Procedures vs. Dynamic Queries.
In Ted Graham's blog this morning he wrote a little text about the debate that is starting to show up here and there: is there a move away from 'Stored Procedures' towards 'Dynamic Created Queries' ? I think there is.
-
Google for hackers
-
dotnetweblogs and Google
For some reason, Google does not finds some dotnetweblogs.com posts. Does anyone know why?
-
Eclipse WSDL2Java plugin
Some time ago I built an Eclipse Plugin to use Apache's Axis WSDL2Java tool.
-
DataSets II
The main reasons people do not like DataSets are that they are not ‘objects’, so you cannot build a good domain model with them and that the syntax does not feel very OO (dataSet.Table[0].Field instead of Table.Field). They are also expensive to create.
-
DataSets
Clemens and Roy are blogging about DataSets, and I’ll join them.
-
Data in distributed systems
Putting code and data into a single thing is a bad idea for distributed systems. Behavior is bound to the role that data plays in a functional scope. Presentation is a scope, calculation, combination, aggregation and validation are scopes, services and resource access is a scope. Having all code for all scopes on a single thing is bad. (...)
-
Exposing your business logic layer II
I got some comments to my previous post. I never know if I should answer them in the comments section or in the weblog itself, as I never know if someone reads the comments, so I'll post this here.
-
Steve Ballmer presentation transcript
A year and half ago I read a transcript of a presentation Steve Ballmer did in a 'Can Win' event and I was really impressed with it. I was so impressed that I had the need to send him an email saying I liked it, and he answered it with a 'Thx' ;).
-
Exposing your business logic layer
One of the main reasons for designing software in several layers is to reduce the impact that the changes in one layer have in the upper layers. For example, you keep all your SQL code in a Data Access Layer, and when your schema changes, you just need to change that layer and not the upper ones.
-
Effective Enterprise Java
Even if you are not into Java, you cannot miss Ted Neward's Effective Enterprise Java series. I really liked the ones about object oriented or relational design.
-
Remoting and Load Balancing
We have a customer with a big Java/VisiBroker banking application, and we are planning to move it to .NET.
-
Lutz Roeder
Lutz Roeder has started a blog. If the name doesn't ring a bell, he's got a bunch of useful tools for .NET, including Refelector (for which he released a de-compiler plugin). (...)
-
Interview in CodeGeneration.net
Jack Herrington just published a the transcript of an e-mail chat we had about DeKlarit and code generation in general.
-
AOP.NET
Just received:
-
Microsoft and the Cluetrain II
Reading the points of the Manifesto conjures the vision of a geek in the cube shaking his imaginary wizard staff at the mighty Mount Corporation saying "you will respect me, or I will destroy you."
-
Microsoft got Cluetrained
Some time ago Jon Udell asked if 'Will Microsoft hop on the Cluetrain?'.
-
RSS Aggregators
I keep trying the cool new aggregators, but I'm always back to NewzCrawler. It rocks.
-
Fabrice's .NET Tools list and DeKlarit
Fabrice included DeKlarit in the "RAD tools - Application development automation".
-
Database Changes
Solving this problem is the main reason of DeKlarit's existence ;). Check the DeKlarit White Paper.
-
ADO.NET Caching
In the Java world, there are some products that do JDBC sentence caching (one is IronCache but there are others).
-
Windows 2003 Server and Windows XP
I guess this is a FAQ but I did not find the answer.
-
Old Radio weblog
All about Andre Before I get a swarm of emails and IM's, I moved over some of Andre's radio archive. The .NETWeblogs.com home page just shows the last 15 items by ID and not date . Sorry for the confusion.
-
XPath Querying Over Objects with ObjectXPathNavigator
Cool MSDN article on using XPath on collections, much like JXPath.
-
RSS rules
-
Enterprise Integration Patterns
Ted Neward pointed to an Enterprise Integration Patterns site with really good content.
-
Dave Thomas on Code Generation
Pragmatic Programmer Dave Thomas talks about code generation.
-
Dot Net Architecture Videos
Clements points out that the entire architecture seminar is online. Very nice stuff!
-
Let´s play
-
Whitespace
Whitespace via Slashdot Most modern programming languages do not consider white space characters (spaces, tabs and newlines) syntax, ignoring them, as if they weren't there. We consider this to be a gross injustice to these perfectly friendly members of the character set. Should they be ignored, just because they are invisible? Whitespace is a language that seeks to redress the balance. Any non whitespace characters are ignored; only spaces, tabs and newlines are considered syntax. This sounds like a really useful PL.
[via Lambda the Ultimate]LOL. -
Abstraction and Detail
Abstraction and Detail (SOURCE:Daniel Berlinger's Archipelago)-Nice!
<quote>
Put Abstractions in Code, Details in Metadata
</quote>[via Roland Tanglao's Weblog] -
Solar eclipse
I'm probably the last to realize that the obvious relation between the words 'Eclipse' and 'Sun' becomes interesting when you apply it to this Eclipse and this Sun.
-
More rants about Object Oriented Data Modeling
I found more interesting discussions about data modeling in the home page of Wilshire Meta-Data Conference. I did not know about that conference, but they have most 'data modeling gurus' as speakers.
In an interview to William G. Smith, he says:
-
Objects & Databases
I've been reading Practical Issues in Database Management by Fabian Pascal.
The book gives you what it promises, focusing on some common issues when working with relational databases.
If you read his articles, you'll see that he is a strong supporter of the relational theory, and dismisses every other data modeling technique.
Even if his points of view are quite radical, I liked his explanation on why and when you want to store objects in a database.
His point is that a type is defined by some data and some operations you can apply to it. Sometimes, the data and the operations are quite stable and cross-domain. The operations that an application needs to do with it are similar to the ones that another application needs. A 'Point' type is in that category. You can store this kind of type as an object.
Other types, as a 'Customer' or an 'Order' are not agreed neither in its structure nor in the operations you want to perform on them. Both structure and operations usually change during the lifetime of an application. So you need to represent them in a way that you can easily change the structure and perform any operation with it. You cannot store these types as an object. You should take advantage of the excellent support in relational databases for changing the structure or operating with data.
-
Excel 11
With Excel 11 you can bind an XSD to sections of a worksheet and then get the XML for it.
-
Wikis
We are about 120 people in our company, and we wanted to see what happened if we installed a Wiki ‘on the wild’. So, we installed OpenWiki about 45 days ago. Our idea was not to solve a specific problem, but just to check if a Wiki could help us to improve the way we work.
-
Word 11
I’ve seen a really impressive demo of Word 11.
-
DeKlarit and eWeek Excellence Awards
DeKlarit was nominated as a finalist for the eWeek Excellence Awards.
-
InfoPath
I really liked the product and the concept. It is a 1.0 version so you should look at it as the beginning of something.
-
RSS feed for FogBugZ
RSS feed for FogBugZ
-
Axis Plugin for Eclipse
This plugin was developed to provide a quick way to import Axis Java SOAP stubs into a Eclipse project. I just needed it for the DeKlarit demo I did in WebServices DevCon East, so don't expect new improvements for this tool. I submitted it to axis-dev@xml.apache.org, so perhaps it's included in the Axis codebase sometime.
-
Moving from Radio
I switched.
-
Amazon .NET books delivered via RSS
Amazon .NET books delivered via RSS:
A chap called Sean Nolan has been messing with the Amazon web services and has created an RSS feed that returns a list of books that match a search term. [Cool.]
-
Microsoft and the corporate market
There are three 'platforms' for building corporate applications today: J2EE, Microsoft.NET and the 'Open Source' platform. In the later I also include Java software that is not J2EE like Struts, WebWork, Hibernate, Castor, etc, etc.
-
WebServices or J2EE Connector Architecture
I'll have a meeting with a guy who will defend using JCA for application integration. I'm not a JCA expert, but as far as I know JCA is trying to solve the same problem as WebServices.
-
Free! - Free Monitor for Google 1.2 beta 1
This weblog ranks #1 for Andres Aguiar, and that is not suprising, but ranking #7 for Andres it is, as this isn't really a high-traffic weblog. I guess having a non-English name improves your chances of having a well google-ranked weblog... ;)
-
DeKlarit 2.0
While I'm in Bellevue attending to a ND Microsoft event, our team released DeKlarit 2.0.
-
Distributed .NET Newsletter
Early next week, I'll send out the first issue of my free "Distributed .NET Newsletter".
-
Kartoo
I'm probably the last one to find out about Kartoo, but it's really cool.
-
Yukon and CLR Types
People seemed to like the idea that you can store CLR types inside Yukon.
-
Yukon and the CLR II
In a comment to my previous post, I was pointed to a Yukon presentation that was given in Netherland´s DevDays that has some interesting details.
-
Yukon and the CLR
I'll be under NDA for Yukon (aka the next SQL Server version) in a couple of weeks, so this is the moment to post my thoughts about it.