ADO.NET EntityFramework and Large SQL Databases

  • Thread starter Thread starter PPCUBAN
  • Start date Start date
P

PPCUBAN

Hello.

This is my scenario. I am building a WinForm app. I have a 300+ tables
databases.
My problem comes everytime i have to build my app. it takes forever and i
guess the reason is that everytime that i compile, the system is compiling
the 300+ entities it just created. i found a bizarre solution to my problem
by having another project, a class library project, only for the model. Then
i unchecked the Build in the Solution properties so it doesn't get built all
the time. That's fine, but for some reason, i cant find the provider class
and also i am having other issues. i guess my question is... Is there a
DESCENT way to have the Entity model co-existing in peace in my Winform
project and do not wait up to 2 minutes everytime i need to build my app
(which happens about 300 times a day in test phase)

Any hint on this would be higly appreciated
 
I used to have that before when i was using Nettiers (www.nettiers.com). They
don't exist anymore (i think because of Entity Framework). Basically they
were doing the same thing. Now, i had the same problem with nettiers. Then i
create a whole completly solution apart and made it my DLL providers for
those entities,data, services... and all togheter, Then, i would create
another solution for my app and reference to my DLLs. I wanted somehow to get
that "technique" overriden by the new Entity Framework but my dreams vanished.

I'll keep you posted about ths.
Miha Markic said:
Why don't you put your entity framework code in separated assembly - class
library?

--
Miha Markic [MVP C#, INETA Country Leader for Slovenia]
RightHand .NET consulting & development www.rthand.com
Blog: http://cs.rthand.com/blogs/blog_with_righthand/

PPCUBAN said:
Hello.

This is my scenario. I am building a WinForm app. I have a 300+ tables
databases.
My problem comes everytime i have to build my app. it takes forever and i
guess the reason is that everytime that i compile, the system is compiling
the 300+ entities it just created. i found a bizarre solution to my
problem
by having another project, a class library project, only for the model.
Then
i unchecked the Build in the Solution properties so it doesn't get built
all
the time. That's fine, but for some reason, i cant find the provider class
and also i am having other issues. i guess my question is... Is there a
DESCENT way to have the Entity model co-existing in peace in my Winform
project and do not wait up to 2 minutes everytime i need to build my app
(which happens about 300 times a day in test phase)

Any hint on this would be higly appreciated
 
PPCUBAN said:
I used to have that before when i was using Nettiers (www.nettiers.com).
They
don't exist anymore (i think because of Entity Framework).

Why do you think that nettiers doesn't exist anymore?

Basically they
were doing the same thing. Now, i had the same problem with nettiers. Then
i
create a whole completly solution apart and made it my DLL providers for
those entities,data, services... and all togheter, Then, i would create
another solution for my app and reference to my DLLs. I wanted somehow to
get
that "technique" overriden by the new Entity Framework but my dreams
vanished.

Having data access layer in a separate assembly is a good practice.

--
Miha Markic [MVP C#, INETA Country Leader for Slovenia]
RightHand .NET consulting & development www.rthand.com
Blog: http://cs.rthand.com/blogs/blog_with_righthand/
I'll keep you posted about ths.
Miha Markic said:
Why don't you put your entity framework code in separated assembly -
class
library?

--
Miha Markic [MVP C#, INETA Country Leader for Slovenia]
RightHand .NET consulting & development www.rthand.com
Blog: http://cs.rthand.com/blogs/blog_with_righthand/

PPCUBAN said:
Hello.

This is my scenario. I am building a WinForm app. I have a 300+ tables
databases.
My problem comes everytime i have to build my app. it takes forever and
i
guess the reason is that everytime that i compile, the system is
compiling
the 300+ entities it just created. i found a bizarre solution to my
problem
by having another project, a class library project, only for the model.
Then
i unchecked the Build in the Solution properties so it doesn't get
built
all
the time. That's fine, but for some reason, i cant find the provider
class
and also i am having other issues. i guess my question is... Is there a
DESCENT way to have the Entity model co-existing in peace in my Winform
project and do not wait up to 2 minutes everytime i need to build my
app
(which happens about 300 times a day in test phase)

Any hint on this would be higly appreciated
 
PPCUBAN said:
Hello.

This is my scenario. I am building a WinForm app. I have a 300+ tables
databases.
My problem comes everytime i have to build my app. it takes forever and i
guess the reason is that everytime that i compile, the system is compiling
the 300+ entities it just created. i found a bizarre solution to my problem
by having another project, a class library project, only for the model. Then
i unchecked the Build in the Solution properties so it doesn't get built all
the time. That's fine, but for some reason, i cant find the provider class
and also i am having other issues. i guess my question is... Is there a
DESCENT way to have the Entity model co-existing in peace in my Winform
project and do not wait up to 2 minutes everytime i need to build my app
(which happens about 300 times a day in test phase)

Any hint on this would be higly appreciated

How are you even managing those 300 entities in the designer of EF! :)

All code of the 300 entities is in 1 file, the .designer.cs file, which
can grow very long due to the 300+ entities. Every time you compile your
winforms app, that file is compiled too. Having it in a separate project
is better, because it then doesnt' get compiled every time, only when a
file changes (so if you change a winform, it doesn't get compiled again).

I'm the lead developer of LLBLGen Pro, which is a widely used O/R
mapper for .NET with similar (and sometimes better) features as the EF,
and a designer which can handle way more than 300+ entities :). It sets
up the project as a separate class library so it gets compiled only when
you regenerate it. See my signature for details.

FB

--
------------------------------------------------------------------------
Lead developer of LLBLGen Pro, the productive O/R mapper for .NET
LLBLGen Pro website: http://www.llblgen.com
My .NET blog: http://weblogs.asp.net/fbouma
Microsoft MVP (C#)
------------------------------------------------------------------------
 
Net Tiers still exists, AFAIK. I stopped using .NET Tiers because of the
data transport, but that shys away from your question.

I agree with both Mika and Frans on the separate assembly side, but I have a
slightly different explanation. For me, the UI is a user interface. It
should contain no code for data and that includes datasets, entities, etc.
There are three reasons for this:

1. Improved testability of code - UI code is hard to test, so move as much
logic away from the UI
2. Reusability of code
3. Ability to switch out UIs without a huge amount of work

Unfortunately, MS has done a piss poor job of expressing separation of
concerns in their sample apps, so few people do it well.

--
Gregory A. Beamer
MVP, MCP: +I, SE, SD, DBA

Subscribe to my blog
http://gregorybeamer.spaces.live.com/lists/feed.rss

or just read it:
http://gregorybeamer.spaces.live.com/

*************************************************
| Think outside the box!
|
*************************************************
PPCUBAN said:
I used to have that before when i was using Nettiers (www.nettiers.com).
They
don't exist anymore (i think because of Entity Framework). Basically they
were doing the same thing. Now, i had the same problem with nettiers. Then
i
create a whole completly solution apart and made it my DLL providers for
those entities,data, services... and all togheter, Then, i would create
another solution for my app and reference to my DLLs. I wanted somehow to
get
that "technique" overriden by the new Entity Framework but my dreams
vanished.

I'll keep you posted about ths.
Miha Markic said:
Why don't you put your entity framework code in separated assembly -
class
library?

--
Miha Markic [MVP C#, INETA Country Leader for Slovenia]
RightHand .NET consulting & development www.rthand.com
Blog: http://cs.rthand.com/blogs/blog_with_righthand/

PPCUBAN said:
Hello.

This is my scenario. I am building a WinForm app. I have a 300+ tables
databases.
My problem comes everytime i have to build my app. it takes forever and
i
guess the reason is that everytime that i compile, the system is
compiling
the 300+ entities it just created. i found a bizarre solution to my
problem
by having another project, a class library project, only for the model.
Then
i unchecked the Build in the Solution properties so it doesn't get
built
all
the time. That's fine, but for some reason, i cant find the provider
class
and also i am having other issues. i guess my question is... Is there a
DESCENT way to have the Entity model co-existing in peace in my Winform
project and do not wait up to 2 minutes everytime i need to build my
app
(which happens about 300 times a day in test phase)

Any hint on this would be higly appreciated
 
Gregory-

snip
Unfortunately, MS has done a piss poor job of expressing separation of
concerns in their sample apps, so few people do it well.
snip

Do you have an idea how they could have done it better.

Seperate websites maybe in different layers

MSDN-DataAcces\Microsoft.Com
MSDN-UI\Microsoft.Com

For me there is no other option then as they do, however maybe you have a
brilliant idea.

(Just what I thought reading your message)

-Cor
 
Back
Top