For those that know ado.net/asp.net architecture well, i'd like to get your opinions on strongly typed datasets. I posted at asp.net but didnt receive any response.
I've always used a 3-tiered architecture with untyped datasets for my enterprise applications with a presentation, business, and data access layer talking to SQL. But recently i read an article that said strongly typed datasets are vastly superior in terms of speed and development type because they enable the use of intellisense in ado.net.
I actually went ahead and tried it and found that a) yes development time WAS faster because a ton of code is autogenerated for you that youd normally have to write yourself, but b) that strongly typed datasets seem to "couple" the layers in an n-tier structure too much. Instead of having independent tiers that are modular, you have too much codependence on each other.
One example is how you get a dataset to bind to a datagrid in the presentation layer. You have to call the business layer which calls the data layer which talks to the database to return a dataset through the layers again. That's how i used to do it. But because strongly typed datasets are STRONGLY typed, you now have to pass through the layers an object instantiated from an inherited dataset CLASS. This means that the class has to either exist in some centralized module apart from the other layers, or that each layer has to reference the data layer in order to create a local object of type "strong dataset".
How are other developers doign this? By creating a "StrongTypeDataSet" tier that only holds the dataset classes? Or by making the presentation layer directly reference the data layer?
I've always used a 3-tiered architecture with untyped datasets for my enterprise applications with a presentation, business, and data access layer talking to SQL. But recently i read an article that said strongly typed datasets are vastly superior in terms of speed and development type because they enable the use of intellisense in ado.net.
I actually went ahead and tried it and found that a) yes development time WAS faster because a ton of code is autogenerated for you that youd normally have to write yourself, but b) that strongly typed datasets seem to "couple" the layers in an n-tier structure too much. Instead of having independent tiers that are modular, you have too much codependence on each other.
One example is how you get a dataset to bind to a datagrid in the presentation layer. You have to call the business layer which calls the data layer which talks to the database to return a dataset through the layers again. That's how i used to do it. But because strongly typed datasets are STRONGLY typed, you now have to pass through the layers an object instantiated from an inherited dataset CLASS. This means that the class has to either exist in some centralized module apart from the other layers, or that each layer has to reference the data layer in order to create a local object of type "strong dataset".
How are other developers doign this? By creating a "StrongTypeDataSet" tier that only holds the dataset classes? Or by making the presentation layer directly reference the data layer?