This could be a good topic about discussing best practices and techniques used while programming .Net!

So what are yours and what are your suggestions?
maybe a discussion about each practice could be seperate.

what about 3 tier applications , have you a data layer of your own or just use one off the net?
passing values between forms?
storing the connection string?
Database Design?
Deployment?

And for the unimaginative people like myself when it comes to App design, do you only use the IDE or take advantage
of controls like Infragistics and devexpress?what about WPF?
Well in AppDesign i mix between the IDE controls and infragistics controls , for example infragistic WebDataGrid is much better than the normal GridView when it comes to paging, sorting and filtering the grid plus it has a nice design.
I do not know what best practices you might be looking for as I do not really think there are ones that are specific to the .NET framework as opposed to programming and development in general. But I could say when developing using the .NET framework, always stick to the conventions and try to keep yourself updated with the latest technologies released into the framework. Beside that, try to keep your code clean and well documented.

About the data layer of an application, I really like the options available in the .NET framework. To be more specific, using the Entity Framework as my data model makes my life much easier when working with a database. Then using LINQ and Lambda Expressions to query the model makes it even more enjoyable.
passing values between forms?
I usually use public properties for doing that, but I'd like to know about a more reliable way for doing so. I tried using custom events but that did not work for me. More insights on this issue would be highly appreciated.
storing the connection string?
App.config
Database Design?
What do you mean?
Deployment?
I'm very new to this but here's a conclusion I came to after I've did some research online:
- If your application is going to be updated frequently then your best choice would be ClickOnce Deployment.
- If you need a simple and easy way to package your application then you should consider using a Setup Project inside your Solution.

And for the unimaginative people like myself when it comes to App design, do you only use the IDE or take advantage of controls like Infragistics and devexpress?
Never heard of Infragistics or DevExpress, I usually stick to the controls and tools provided by the IDE. But I will take a look at the aforementioned alternatives.
what about WPF?
If you've got a designer who would "skin" your application for you in an artistic way then WPF is the right way to go. If you do not have access to a designer, and you do not have the design skills to spice up the look of your UI, you'd better stick with WinForms.
We make heavy use of xceed's datagrid.

for our web projects, we use Telerik's ASP.NET MVC Controls.

In terms of best practices, i'll save that for when i have time, it's a long discussion.
5 days later
ali.nour85 wroteWell in AppDesign i mix between the IDE controls and infragistics controls , for example infragistic WebDataGrid is much better than the normal GridView when it comes to paging, sorting and filtering the grid plus it has a nice design.
Yes the filter option is great , saves tons of codes but might cause confusion if multiple tabs inside one form with many ultragrids.
Kassem wroteI usually use public properties for doing that, but I'd like to know about a more reliable way for doing so. I tried using custom events but that did not work for me. More insights on this issue would be highly appreciated.
properties are one way , i myself use delegates to pass the data , you could also pass data between forms using their constructors.

that's what I meant about practices and techniques;
for passing data between forms there are many ways to do so, so the discussion would be which one is best and what are the cons
and pros for each one.
Kassem wroteApp.config
I still make my connection string global and call it throughout my forms, should change it into App.config pretty soon
cause I've been reading about it and seems the best way to go only if it is encrypted that is , have you done that before?

other practices might include hard coding it which of course is a no no , you could also store it in the windows registry
there are a lot more ways to store a connection string.

Kassem wroteDatabase Design?
for me database design in linked to the presentation layer and the way data is represented in my forms.
for example Inheritance , if you have many people types in your application like customers, users, admins etc..
would you create a table for each one or simply create a Person main class and each sub person type inherits the same
fields shared with all , while each having their own properties and methods?

before starting with coding , one must have a good database design if he wanted to make his coding easier later on.
I wrote an application one and kept going back and forth changing the tables everytime which was very annoying and time consuming.
Kassem wroteNever heard of Infragistics or DevExpress, I usually stick to the controls and tools provided by the IDE. But I will take a look at the aforementioned alternatives.
you should do that , i'm learning infragistics controls , find a bit of trouble around them but enjoying the results.
there are some controls that are free and some are not, I downloaded Infragistics for windows forms and started discovering,
it also comes with AppStylist which styles your applications , it's not that easy for me to do so as It's very useless with me matching colors, but we keep trying =D.
xterm wroteIn terms of best practices, i'll save that for when i have time, it's a long discussion.
seems you have tons,we'll be waiting , maybe like I said , discuss each one at a time.