Re: About Validate Email

2012-04-12 Thread Les Hughes

Joseph Clark wrote:
I'm no expert on this either, but I'm fairly certain that this 
business requirement is simply not achievable. Due to the way mail 
servers operate on the Internet, there is no way for a sender to know 
if an intended recipient address is valid.


An email may go through several mail exchanges before it arrives at 
the one that will ultimately deliver to the user's inbox. At any point 
along the way, the email may be rejected for any variety of reasons 
and this rejection may occur asynchronously.

Hi Muhammad,

While I share a similar view about the requirements as the other 
posters, that what you are trying to do will not be possible as a 100% 
working case.


BUT

Here are a few things you can do:

- Let's say your domain is taxionline.com: set the 'return-to' header 
variable to bou...@taxionline.com


- Have some code which retrieves the bounce@ emails, looking for the 
emails which have 550 errors + the rest of them. Note that some returns 
will be "Out of Office" replies and so-forth. Here is some java code 
which helps sort emails by category: 
http://javaclue.blogspot.com.au/2009/09/detect-bounced-emails-part-2.html


As others have noted, there are (at least) the following issues:
- Your email might be rejected as spam by a server somewhere between you 
and the end mail server

- When the email is dropped, you might not get any confirmation.
- Any confirmation can take a long time to come back, making the whole 
exercise pointless.

- Bounces might not be to standard, meaning you miss them.
- Classifying an innocent email as a bounce would be disastrous for any 
legitimate user of your service.
- While I don't know your business case, it seems automating this might 
be problematic in terms of how you deal with it, and something like an 
SMS/Phone confirmation (while also having inherent issues) might be 
something else to consider.


Regardless, good luck :)
--
Les Hughes
l...@datarev.com.au

P.S. For those interested, here is a good regular expression for email 
validation:


(?:(?:\r\n)?[ \t])*(?:(?:(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t]
)+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:
\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(
?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ 
\t]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\0

31]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\
](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+
(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:
(?:\r\n)?[ \t])*))*|(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z
|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)
?[ \t])*)*\<(?:(?:\r\n)?[ \t])*(?:@(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\
r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[
\t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)
?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t]
)*))*(?:,@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[
\t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*
)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t]
)+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*)
*:(?:(?:\r\n)?[ \t])*)?(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+
|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r
\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:
\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t
]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031
]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](
?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?
:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?
:\r\n)?[ \t])*))*\>(?:(?:\r\n)?[ \t])*)|(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?
:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?
[ \t]))*"(?:(?:\r\n)?[ \t])*)*:(?:(?:\r\n)?[ \t])*(?:(?:(?:[^()<>@,;:\\".\[\] 
\000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|

\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>
@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"
(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t]
)*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\
".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?
:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[
\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*|(?:[^()<>@,;:\\".\[\] \000-
\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|

Re: About Validate Email

2012-04-12 Thread Heinrich Breedt
You call that "good" ? :P

On Thu, Apr 12, 2012 at 5:06 PM, Les Hughes  wrote:

> Joseph Clark wrote:
>
>> I'm no expert on this either, but I'm fairly certain that this business
>> requirement is simply not achievable. Due to the way mail servers operate
>> on the Internet, there is no way for a sender to know if an intended
>> recipient address is valid.
>>
>> An email may go through several mail exchanges before it arrives at the
>> one that will ultimately deliver to the user's inbox. At any point along
>> the way, the email may be rejected for any variety of reasons and this
>> rejection may occur asynchronously.
>>
> Hi Muhammad,
>
> While I share a similar view about the requirements as the other posters,
> that what you are trying to do will not be possible as a 100% working case.
>
> BUT
>
> Here are a few things you can do:
>
> - Let's say your domain is taxionline.com: set the 'return-to' header
> variable to bou...@taxionline.com
>
> - Have some code which retrieves the bounce@ emails, looking for the
> emails which have 550 errors + the rest of them. Note that some returns
> will be "Out of Office" replies and so-forth. Here is some java code which
> helps sort emails by category: http://javaclue.blogspot.com.**
> au/2009/09/detect-bounced-**emails-part-2.html
>
> As others have noted, there are (at least) the following issues:
> - Your email might be rejected as spam by a server somewhere between you
> and the end mail server
> - When the email is dropped, you might not get any confirmation.
> - Any confirmation can take a long time to come back, making the whole
> exercise pointless.
> - Bounces might not be to standard, meaning you miss them.
> - Classifying an innocent email as a bounce would be disastrous for any
> legitimate user of your service.
> - While I don't know your business case, it seems automating this might be
> problematic in terms of how you deal with it, and something like an
> SMS/Phone confirmation (while also having inherent issues) might be
> something else to consider.
>
> Regardless, good luck :)
> --
> Les Hughes
> l...@datarev.com.au
>
> P.S. For those interested, here is a good regular expression for email
> validation:
>
> (?:(?:\r\n)?[ \t])*(?:(?:(?:[^()<>@,;:\\".\[**\]
> \000-\031]+(?:(?:(?:\r\n)?[ \t]
> )+|\Z|(?=[\["()<>@,;:\\".\[\]]**))|"(?:[^\"\r\\]|\\.|(?:(?:\r\**n)?[
> \t]))*"(?:(?:
> \r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\]
> \000-\031]+(?:(?:(
> ?:\r\n)?[ 
> \t])+|\Z|(?=[\["()<>@,;:\\".\[**\]]))|"(?:[^\"\r\\]|\\.|(?:(?:**\r\n)?[
> \t]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\]
> \000-\0
> 31]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[**
> \]]))|\[([^\[\]\r\\]|\\.)*\
> ](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\]
> \000-\031]+
> (?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[**
> \]]))|\[([^\[\]\r\\]|\\.)*\](?**:
> (?:\r\n)?[ \t])*))*|(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[
> \t])+|\Z
> |(?=[\["()<>@,;:\\".\[\]]))|"(**?:[^\"\r\\]|\\.|(?:(?:\r\n)?[
> \t]))*"(?:(?:\r\n)
> ?[ \t])*)*\<(?:(?:\r\n)?[ \t])*(?:@(?:[^()<>@,;:\\".\[\]
> \000-\031]+(?:(?:(?:\
> r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[**\]]))|\[([^\[\]\r\\]|\\.)*\](?**
> :(?:\r\n)?[
> \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\]
> \000-\031]+(?:(?:(?:\r\n)
> ?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[**\]]))|\[([^\[\]\r\\]|\\.)*\](?**:(?:\r\n)?[
> \t]
> )*))*(?:,@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\]
> \000-\031]+(?:(?:(?:\r\n)?[
> \t])+|\Z|(?=[\["()<>@,;:\\".\[**\]]))|\[([^\[\]\r\\]|\\.)*\](?**:(?:\r\n)?[
> \t])*
> )(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[
> \t]
> )+|\Z|(?=[\["()<>@,;:\\".\[\]]**))|\[([^\[\]\r\\]|\\.)*\](?:(?**:\r\n)?[
> \t])*))*)
> *:(?:(?:\r\n)?[ \t])*)?(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[
> \t])+
> |\Z|(?=[\["()<>@,;:\\".\[\]]))**|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)**?[
> \t]))*"(?:(?:\r
> \n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\]
> \000-\031]+(?:(?:(?:
> \r\n)?[ 
> \t])+|\Z|(?=[\["()<>@,;:\\".\[**\]]))|"(?:[^\"\r\\]|\\.|(?:(?:**\r\n)?[
> \t
> ]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\]
> \000-\031
> ]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[**
> \]]))|\[([^\[\]\r\\]|\\.)*\](
> ?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\]
> \000-\031]+(?
> :(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[**
> \]]))|\[([^\[\]\r\\]|\\.)*\](?**:(?
> :\r\n)?[ \t])*))*\>(?:(?:\r\n)?[ \t])*)|(?:[^()<>@,;:\\".\[\]
> \000-\031]+(?:(?
> :(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[**\]]))|"(?:[^\"\r\\]|\\.|(?:(?:
> **\r\n)?
> [ \t]))*"(?:(?:\r\n)?[ \t])*)*:(?:(?:\r\n)?[ \t])*(?:(?:(?:[^()<>@,;:\\".\[
> **\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[**
> \]]))|"(?:[^\"\r\\]|
> \\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[
> \t])*(?:[^()<>
> @,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[**
> \]]))|"

Re: About Validate Email

2012-04-12 Thread Muhammad Niaz Rana
Thanks for cooperation(s) :)

On Thu, Apr 12, 2012 at 1:56 PM, Heinrich Breedt
wrote:

> You call that "good" ? :P
>
>
> On Thu, Apr 12, 2012 at 5:06 PM, Les Hughes  wrote:
>
>> Joseph Clark wrote:
>>
>>> I'm no expert on this either, but I'm fairly certain that this business
>>> requirement is simply not achievable. Due to the way mail servers operate
>>> on the Internet, there is no way for a sender to know if an intended
>>> recipient address is valid.
>>>
>>> An email may go through several mail exchanges before it arrives at the
>>> one that will ultimately deliver to the user's inbox. At any point along
>>> the way, the email may be rejected for any variety of reasons and this
>>> rejection may occur asynchronously.
>>>
>> Hi Muhammad,
>>
>> While I share a similar view about the requirements as the other posters,
>> that what you are trying to do will not be possible as a 100% working case.
>>
>> BUT
>>
>> Here are a few things you can do:
>>
>> - Let's say your domain is taxionline.com: set the 'return-to' header
>> variable to bou...@taxionline.com
>>
>> - Have some code which retrieves the bounce@ emails, looking for the
>> emails which have 550 errors + the rest of them. Note that some returns
>> will be "Out of Office" replies and so-forth. Here is some java code which
>> helps sort emails by category: http://javaclue.blogspot.com.**
>> au/2009/09/detect-bounced-**emails-part-2.html
>>
>> As others have noted, there are (at least) the following issues:
>> - Your email might be rejected as spam by a server somewhere between you
>> and the end mail server
>> - When the email is dropped, you might not get any confirmation.
>> - Any confirmation can take a long time to come back, making the whole
>> exercise pointless.
>> - Bounces might not be to standard, meaning you miss them.
>> - Classifying an innocent email as a bounce would be disastrous for any
>> legitimate user of your service.
>> - While I don't know your business case, it seems automating this might
>> be problematic in terms of how you deal with it, and something like an
>> SMS/Phone confirmation (while also having inherent issues) might be
>> something else to consider.
>>
>> Regardless, good luck :)
>> --
>> Les Hughes
>> l...@datarev.com.au
>>
>> P.S. For those interested, here is a good regular expression for email
>> validation:
>>
>> (?:(?:\r\n)?[ \t])*(?:(?:(?:[^()<>@,;:\\".\[**\]
>> \000-\031]+(?:(?:(?:\r\n)?[ \t]
>> )+|\Z|(?=[\["()<>@,;:\\".\[\]]**))|"(?:[^\"\r\\]|\\.|(?:(?:\r\**n)?[
>> \t]))*"(?:(?:
>> \r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\]
>> \000-\031]+(?:(?:(
>> ?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[**\]]))|"(?:[^\"\r\\]|\\.|(?:(?:*
>> *\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[
>> \t])*(?:[^()<>@,;:\\".\[\] \000-\0
>> 31]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[**
>> \]]))|\[([^\[\]\r\\]|\\.)*\
>> ](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\]
>> \000-\031]+
>> (?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[**
>> \]]))|\[([^\[\]\r\\]|\\.)*\](?**:
>> (?:\r\n)?[ \t])*))*|(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[
>> \t])+|\Z
>> |(?=[\["()<>@,;:\\".\[\]]))|"(**?:[^\"\r\\]|\\.|(?:(?:\r\n)?[
>> \t]))*"(?:(?:\r\n)
>> ?[ \t])*)*\<(?:(?:\r\n)?[ \t])*(?:@(?:[^()<>@,;:\\".\[\]
>> \000-\031]+(?:(?:(?:\
>> r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[**\]]))|\[([^\[\]\r\\]|\\.)*\](?**
>> :(?:\r\n)?[
>> \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\]
>> \000-\031]+(?:(?:(?:\r\n)
>> ?[ 
>> \t])+|\Z|(?=[\["()<>@,;:\\".\[**\]]))|\[([^\[\]\r\\]|\\.)*\](?**:(?:\r\n)?[
>> \t]
>> )*))*(?:,@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\]
>> \000-\031]+(?:(?:(?:\r\n)?[
>> \t])+|\Z|(?=[\["()<>@,;:\\".\[**\]]))|\[([^\[\]\r\\]|\\.)*\](?**:(?:\r\n)?[
>> \t])*
>> )(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\]
>> \000-\031]+(?:(?:(?:\r\n)?[ \t]
>> )+|\Z|(?=[\["()<>@,;:\\".\[\]]**))|\[([^\[\]\r\\]|\\.)*\](?:(?**:\r\n)?[
>> \t])*))*)
>> *:(?:(?:\r\n)?[ \t])*)?(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[
>> \t])+
>> |\Z|(?=[\["()<>@,;:\\".\[\]]))**|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)**?[
>> \t]))*"(?:(?:\r
>> \n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\]
>> \000-\031]+(?:(?:(?:
>> \r\n)?[ 
>> \t])+|\Z|(?=[\["()<>@,;:\\".\[**\]]))|"(?:[^\"\r\\]|\\.|(?:(?:**\r\n)?[
>> \t
>> ]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\]
>> \000-\031
>> ]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[**
>> \]]))|\[([^\[\]\r\\]|\\.)*\](
>> ?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\]
>> \000-\031]+(?
>> :(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[**
>> \]]))|\[([^\[\]\r\\]|\\.)*\](?**:(?
>> :\r\n)?[ \t])*))*\>(?:(?:\r\n)?[ \t])*)|(?:[^()<>@,;:\\".\[\]
>> \000-\031]+(?:(?
>> :(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[**
>> \]]))|"(?:[^\"\r\\]|\\.|(?:(?:**\r\n)?
>> [ \t]))*"(?:(?:\r\n)?[ \t])*)*:(?:(?:\r\n)?[
>> \t])*(?:(?:(?:[^()<>@,;:\\".\[**\] \000-\031]+(?:(?:(?:\r\n)?[
>> \t])+|\Z|(?=[\["

Dump EntityFramework for LLBLGen

2012-04-12 Thread ifumust
Been using llbLgen for years but finding that EF would do what i need.   

 

Would save me a step(time) using EF in vs 2010 instead of generate DAL using
LLblgen

 

Anyone have an opinion on this?

 

 

Anthony



Re: Dump EntityFramework for LLBLGen

2012-04-12 Thread Arjang Assadi
One Word: EF Code First! and I haven't looked back ever since.
DAL is dead, Long live Entities

Regards

Arjang
On 13 April 2012 10:59,  wrote:

> Been using llbLgen for years but finding that EF would do what i need.   *
> ***
>
> ** **
>
> Would save me a step(time) using EF in vs 2010 instead of generate DAL
> using LLblgen
>
> ** **
>
> Anyone have an opinion on this?
>
> ** **
>
> ** **
>
> Anthony
>


RE: Dump EntityFramework for LLBLGen

2012-04-12 Thread ifumust
What about disconnected scenarios...

 

I currently able to serialize(using LLBLGEN) an entity(or entity collection)
from a web service and pass it to a client to be de-serialized very easily,
can EF do this without much hassle?

 

From: ozdotnet-boun...@ozdotnet.com [mailto:ozdotnet-boun...@ozdotnet.com]
On Behalf Of Arjang Assadi
Sent: Friday, 13 April 2012 11:06 AM
To: ozDotNet
Subject: Re: Dump EntityFramework for LLBLGen

 

One Word: EF Code First! and I haven't looked back ever since.

DAL is dead, Long live Entities

 

Regards

 

Arjang

On 13 April 2012 10:59,  wrote:

Been using llbLgen for years but finding that EF would do what i need.   

 

Would save me a step(time) using EF in vs 2010 instead of generate DAL using
LLblgen

 

Anyone have an opinion on this?

 

 

Anthony

 



Re: Dump EntityFramework for LLBLGen

2012-04-12 Thread David Richards
Try doing that on a PDA (aka smartphone). DAL is by no means dead.

David

"If we can hit that bullseye, the rest of the dominoes
 will fall like a house of cards... checkmate!"
 -Zapp Brannigan, Futurama



On Fri, Apr 13, 2012 at 11:05, Arjang Assadi  wrote:
> One Word: EF Code First! and I haven't looked back ever since.
> DAL is dead, Long live Entities
>
> Regards
>
> Arjang
> On 13 April 2012 10:59,  wrote:
>>
>> Been using llbLgen for years but finding that EF would do what i need.
>>
>>
>>
>> Would save me a step(time) using EF in vs 2010 instead of generate DAL
>> using LLblgen
>>
>>
>>
>> Anyone have an opinion on this?
>>
>>
>>
>>
>>
>> Anthony
>
>


Re: Dump EntityFramework for LLBLGen

2012-04-12 Thread Joseph Cooney
My experiences with entity framework have been far from universally
positive. Code first I find slightly discomforting from the get-go because
of the plethora of attributes that end up on your model (especially when
used in conjunction with ASP.NET MVC... ) everything from the UI to
persistence ends up getting glued on to your model and this is somehow OK
becuase it is done with attributes?

EF keeps getting better with each release, but that is faint praise. In 4.5
they allowed pre-compilation of query expressions, which had previously
limited performance of one project I know of to about 5 concurrent users
before the CPUs melted through the case. In 4.5 they also apparently fixed
bugs like this
http://stackoverflow.com/questions/682429/how-can-i-query-for-null-values-in-entity-framework

The biggest problem I've seen with EF is the performance. Have a look at
some of the queries it generates to do simple-seeming selects and then
ponder how you would go about tuning said query. At the end of the day EF
seems like a really leaky abstraction over database access. It can work if
you're constantly looking 'under the covers' at the SQL it generates, and
are prepared to constantly think about how you need to structure a
particular linq expression or API call to work with EF, but it has always
felt to me like it causes more problems than it solves.

Joseph

On Fri, Apr 13, 2012 at 11:05 AM, Arjang Assadi wrote:

> One Word: EF Code First! and I haven't looked back ever since.
> DAL is dead, Long live Entities
>
> Regards
>
> Arjang
> On 13 April 2012 10:59,  wrote:
>
>> Been using llbLgen for years but finding that EF would do what i need.
>> 
>>
>> ** **
>>
>> Would save me a step(time) using EF in vs 2010 instead of generate DAL
>> using LLblgen
>>
>> ** **
>>
>> Anyone have an opinion on this?
>>
>> ** **
>>
>> ** **
>>
>> Anthony
>>
>
>


-- 

w: http://jcooney.net
t: @josephcooney


Re: Dump EntityFramework for LLBLGen

2012-04-12 Thread Scott Barnes
I agree with what Joseph says ...yet, i need to add a "but" :)

I've spent close to the past 8 months writing an Enterprise Service Bus
(yeah, I must be the only one right?) from the ground up. I've got a lot of
unique constraints that I'd argue most LOB solutions haven't had to face.
Firstly, bandwidth is a huge issue given the solution I've produce has to
be deployed on some Panasonic Tough Books that are used in the middle of
Central Queenslands coal fields combined with occasionally connected 3G
capabilities.

The secondary issue is around the volumes of data that are collected, in
that if you take a Geologist on an average day and how much data they
interact with it can easily climb into the 100's of gigs all whilst living
on a combination of LAN vs 3G connections as its transport protocol.

The last is WPF... i think we can leave that one alone though ;), jokes
aside the last is also co-worker or developer maturity. I can't hire all of
you rockstars here on this list, and times have to produce a solution that
is going to range from a Junior to Principle developer skillset.

Ergo, my strategy around usage of EF resides on two things. The first is
that it's palatable to most developers in its usage from an API stand
point, despite numerous twitter outbursts and moments of quit rage boiling
over throughout, it however does solve a need in that space.

It also via code-first option provides an easy win around abstraction or
more to the point "don't think persistence" but it comes with a catch
(which I think Joseph is eluding to). If you use it from a RDBMS stand
point with a code-first mentality you're basically going to get schooled
just by how badly Microsoft code-generation or automated frameworks can be.
However, if you approach it from a NOSQL approach with a code-first option
you very well may stand a chance to survive.

Vis a Vi, Concordantly - EF can hold a place around how you persist data
from a UI top down strategy, that is to say if you design your data object
graphs from UI perspective you can get away with some happy wins. Whilst
also combining this with DDD/CQS/MSMQ blah blah, you can also get some wins
as well as what you're effectively doing is breaking the various return
trips to getting data based of small data snacking principles.

For large data sets however in terms of "Gimme all data that has the number
0 in it", I've instead gone down the path of using a REST WCF Data Services
approach, which admittedly is still not a cheapest way to handle this kind
of thing but at the same time sending gigabytes of data to a client on a
call by call basis in my context is an overkill. I prefer to use other
transport methods to handle larger data sets (which even at times uses
FTP/WebDAV).

You can also abstract your POCO/TO/BO's etc from EF without having to
decorate them with attributes, it just is easy to just quickly use [Key]
inside the object instead of parking that via Fluent style declarations in
your DbContext classe(s)

ie I've written a small code-gen tool that basically will inspect a basic
POCO and then spit out some code that produces something like this inside
my DbContext class.

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{

// Person - Primary Key.
modelBuilder.Entity()
.HasKey(p => p.PersonId);

// Person - Firstname DB rules.
modelBuilder.Entity()
.Property(p => p.Firstname)
.HasColumnName("fstname")
.IsRequired()
.HasMaxLength(50);

base.OnModelCreating(modelBuilder);
}

Inside a separate project which has no EF dependencies at all (pure ye olde
C# project)

[Serializable]
public class Person : IPerson
{
public Person()
{
this.PersonId = Guid.NewGuid();
}
public string Prefix { get; set; }

#region IPerson Members
public Guid PersonId { get; set; }
public string Firstname { get; set; }
public string Lastname { get; set; }
public string Alias { get; set; }
#endregion
}

public interface IPerson
{
Guid PersonId { get; set; }
string Firstname { get; set; }
string Lastname { get; set; }
string Alias { get; set; }
}

Now, some of you are likely to groan and shake a fist or two at this
strategy but i'd rather tell a developer "you are going to have to use
those fingers on the keyboard an extra 10mins or so more than tab-dot-ship
approach you're probably used to, but ...suck it up. As i'd rather have
code-gen tools that automate knuckle head typing issues than ones that
bleed into my .NET composition creating performance related issues.oh
wait... ..EF...never mind :)

So neh! :)

---
Regards,
Scott Barnes
http://www.riagenic.com


On Fri, Apr 13, 2012 at 1:06 PM, Joseph Cooney wrote:

> My experiences with entity framework have been far from universall

RE: Powerpoint pain

2012-04-12 Thread Andrew Coates (DPE AUSTRALIA)
Ctrl+A then Ctrl+Space usually works for me (as it does in Word)

Andrew Coates, ME, MCPD, MCSD MCTS, Developer Evangelist, Microsoft, 1 Epping 
Road, NORTH RYDE NSW 2113
Ph: +61 (2) 9870 2719 • Mob +61 (416) 134 993 • Fax: +61 (2) 9870 2400 • 
http://blogs.msdn.com/acoat

From: ozdotnet-boun...@ozdotnet.com [mailto:ozdotnet-boun...@ozdotnet.com] On 
Behalf Of Greg Low (GregLow.com)
Sent: Thursday, 12 April 2012 4:34 PM
To: 'ozDotNet'
Subject: RE: Powerpoint pain

Hi Peter,

Thanks but that (unfortunately), has options to “Use destination format”, “Use 
source format”, etc. but regardless, it doesn’t change custom font settings.

Regards,

Greg

Dr Greg Low

1300SQLSQL (1300 775 775) office | +61 419201410 mobile│ +61 3 8676 4913 fax
SQL Down Under | Web: www.sqldownunder.com

From: ozdotnet-boun...@ozdotnet.com 
[mailto:ozdotnet-boun...@ozdotnet.com]
 On Behalf Of Peter Gfader
Sent: Wednesday, 11 April 2012 11:27 PM
To: ozDotNet
Subject: Re: Powerpoint pain

@Greg

Another option worth trying is:
1. Select All,
2. Copy
3. File New Powerpoint with your favourite template
4. Paste



   .peter.gfader. (current mood = happy-go-lucky)
   http://blog.gfader.com


2012/4/11 Greg Low (GregLow.com) mailto:g...@greglow.com>>
Thanks Ian and all. I’ve just gone and copied (via Notepad) all the text and 
then reformatted. Seems like a really odd thing to have no simple way to do. 
(And yes, I was dealing with some really odd content formatting).

Regards,

Greg

Dr Greg Low

1300SQLSQL (1300 775 775) office | +61 
419201410 mobile│ +61 3 8676 
4913 fax
SQL Down Under | Web: www.sqldownunder.com

From: Ian Thomas [mailto:il.tho...@iinet.net.au]
Sent: Wednesday, 11 April 2012 7:28 PM
To: g...@greglow.com; 'ozDotNet'
Subject: RE: Powerpoint pain

Greg
Styles don’t work the same way as you’re used to in Word.
I think you have 2 options: one is to use the format painter, the other is 
Tools > Slide Design. But I’m using very olde PPT 2003.
When the panel appears at right, you can click on one of the available standard 
(Design Template) formats (arranged in groups, “Used in this presentation”, 
“Recently used”, “Available for use”). This will change the currently selected 
slide, for its “styles” only. The background for the slides probably has to be 
changed independently.
Also, available on the same panel, is a selection “Color Schemes” That may or 
may not be useful.
I suspect that PPT 2010 is a little more flexible, but 2003 works fine for me. 
I can appreciate that PPT is a palette / canvas for some people’s incredibly 
bad taste, though.


Ian Thomas
Victoria Park, Western Australia


From: ozdotnet-boun...@ozdotnet.com 
[mailto:ozdotnet-boun...@ozdotnet.com]
 On Behalf Of Greg Low (GregLow.com)
Sent: Wednesday, April 11, 2012 4:41 PM
To: 'David Connors'; 'ozDotNet'
Subject: RE: Powerpoint pain

Hi David,

The issue is that I can’t find anything on the toolbar that seems to do this. 
What I’m looking for is the equivalent of “styles” in MS Word ie: equivalent of 
grab a piece of text and say “Heading 1” or “Normal”, etc.

I just keep thinking that if there is a Slide Master and I’m happy with it, but 
someone’s gone through and used custom fonts all over the place, that there 
would be an easy way to remove those and set the standard styling from the 
slide master back in place.

Regards,

Greg

Dr Greg Low

1300SQLSQL (1300 775 775) office | +61 
419201410 mobile│ +61 3 8676 
4913 fax
SQL Down Under | Web: www.sqldownunder.com

From: David Connors [mailto:da...@codify.com]
Sent: Wednesday, 11 April 2012 6:21 PM
To: Greg Low; ozDotNet
Subject: Re: Powerpoint pain


Ctrl a + change the stuff on the tool bar?

You can ctrl click with the format painter too iirc
On Apr 11, 2012 5:59 PM, "Greg Low (GregLow.com)" 
mailto:g...@greglow.com>> wrote:
Hi Folks,

One thing I’ve always wanted to know about PowerPoint is how you can take a 
slide with rubbish fonts, colours, etc. and say “make this look like the fonts, 
etc. in the slide master” ie: how do you “lose” the custom formatting?

Thanks in advance.

Regards,

Greg

Dr Greg Low
CEO and Principal Mentor
SQL Down Under
SQL Server MVP and Microsoft Regional Director
1300SQLSQL (1300 775 775) office | +61 
419201410 mobile│ +61 3 8676 
4913 fax
Web: www.sqldownunder.com





--


  .peter.gfader. (current mood = happy!)
  Check this before you go live
  http://blog.gfader.com/2011/07/website-check-list-part-1-aspnet-4.html