This is the historical list of reading list email I've sent out. From time to time I'll post new things that I'm researching or reading.
From 8/17/2006
Good sample on complex databinding
http://www.codeproject.com/csharp/complexdatabinding.asp
MSDN Article on binding
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnadvnet/html/vbnet02252003.asp
MSDN Stuff
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpgenref/html/cpconpropertyusageguidelines.asp
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfSystemComponentModelIBindingListClassTopic.asp
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemcomponentmodelieditableobjectclasstopic.asp
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemcomponentmodelidataerrorinfoclasstopic.asp
Some Tech News
http://arstechnica.com/index.ars
From 8/16/2006
Working with Command Parameters (has code snippets on the different ways to call stored procedures via Sql, OleDb, or Odbc)
http://msdn2.microsoft.com/en-us/library/yy6y35y8.aspx
Better code timing than DateTime.Now
http://www.eggheadcafe.com/articles/20021111.asp
http://support.microsoft.com/default.aspx?scid=KB;en-us;Q172338
Some Non-Technical UI tidbits.
Barrier of Entry
http://www.joelonsoftware.com/articles/fog0000000052.html
User Model vs Program Model
http://www.joelonsoftware.com/uibook/chapters/fog0000000058.html
Usability
http://www.useit.com/alertbox/20000806.html
http://www.useit.com/alertbox/991128.html
From 8/14/2006
IDesign solutions
http://www.idesign.net/idesign/DesktopDefault.aspx?tabindex=5&tabid=11#Essentials
Working with Custom Attributes (Useful for describing code)
http://www.codeproject.com/csharp/enumwithdescription.asp
http://www.devx.com/dotnet/Article/11579/0/page/2
Instantiating instances given an assembly (Useful for creating factories)
http://msdn2.microsoft.com/en-us/library/d133hta4.aspx -Create an instance using Activator, pass it assemblyname and typename
http://msdn2.microsoft.com/en-us/library/system.runtime.remoting.objecthandle.unwrap.aspx -Unwrap your instance
So I used custom attributes to attribute my enumeration of FormType, the attribute held the typename and assembly of the associated Form. So in my factory I would read the attribute from a given FormType, and then instantiate the associated form.
Delving Deep into the .NET Code
It's quite interesting what you can see with Lutz Roeder's .NET Reflector.
For example, looking at how MS implements its System.Windows.Forms.TabControl.
Using Reflector, drill down on System.Windows.Forms ... System.Windows.Forms.dll ... System.Windows.Forms, look for TabControl.
After studying the code-base you will see that they heavily reuse the native Tab Control for drawing. Ie. Click on SetTabPage,
and you will see that it uses the TCITEM struct as well as sends a windows message (TCM_SETITEM) to set the TCITEM struct.
Reflector
http://www.aisto.com/roeder/dotnet/
Tab Control Item (TCITEM) struct,
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/commctls/tab/structures/tcitem.asp
TCM_SETITEM Windows message
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/commctls/tab/messages/tcm_setitem.asp
Windows Basic, the Windows Message Loop and WndProc
http://www.winprog.org/tutorial/
Some dated but interesting reads =)
http://en.wikipedia.org/wiki/Shatter_attack
http://security.tombom.co.uk/shatter.html
From 8/10/2006
Some Enterprise Library Application Blocks
Update Application Blocks
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnpag2/html/updaterv2.asp
http://msdn.microsoft.com/msdnmag/issues/04/05/ClickOnce/
UI Design Patterns
http://designinginterfaces.com/Multi-Level_Undo
Preconditions, PostConditions, and Invariant
http://www.d.umn.edu/~gshute/softeng/analytic.html - Correctness
http://www.verifysoft.com/en_dbcforjava.html - Design by Contract
Asynchronous Delegates
http://www.devsource.com/article2/0,1895,1942731,00.asp
How to create a professional GDI+ Control
http://www.codeproject.com/cs/miscctrl/ScrollingTextControlArtic.asp
Task Pattern
http://www.developerdotstar.com/mag/articles/troche_taskpattern.html
https://secure.codeproject.com/csharp/tpcp.asp
From 8/9/2006
So one of my most recent challenges, Forms vs Screen Resolution.
Different people have different screen resolutions, but control placement in forms are used through pixels. I've been doing some research and tests, here's what I found so far.
How to get the screen resolution as well as screen properties
http://msdn2.microsoft.com/en-us/library/system.windows.forms.screen.bounds.aspx
http://msdn2.microsoft.com/en-us/library/system.windows.forms.screen.workingarea.aspx
http://msdn2.microsoft.com/en-us/library/system.windows.forms.screen.aspx
Matrix Transformation (I had figured I can use matrices to scale the size from one res to another)
http://www.codeproject.com/csharp/Matrix_Transformation.asp
Good example of GDI+ usage
http://www.gerd-riesselmann.net/archives/2006/01/a-triangle-with-rounded-corners-in-c
Replacing Inheritence with Composition (Code Organization)
http://ivan.truemesh.com/archives/000490.html
There's also been recent talks on database architecture. Just some ideas to throw out.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnpag2/html/caching1.asp (Check out the Design Diagram)
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnpag2/html/caching1.asp (2.0 Version, design's been changed)
CommandBehavior.SequentialAccess
Very powerful way to read blobs from the database
http://msdn2.microsoft.com/en-us/library/system.data.commandbehavior.aspx
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconobtainingblobvaluesfromdatabase.asp
From 8/8/2006
There's no such thing as magic, anonymous methods implementation, interesting read.
http://blogs.msdn.com/oldnewthing/archive/2006/08/02/686456.aspx
http://blogs.msdn.com/oldnewthing/archive/2006/08/03/687529.aspx
http://blogs.msdn.com/oldnewthing/archive/2006/08/04/688527.aspx
http://blogs.msdn.com/grantri/archive/category/3378.aspx
Working with resource files so that a locale change will change what resources are read.
http://only4gurus.com/v3/preview.asp?resource=3576
http://www.c-sharpcorner.com/UploadFile/sribharadwaj/Internationalization03082006085742AM/Internationalization.aspx?ArticleID=29b6cb17-8018-4a37-a39f-89fdd931f480
rant on character sets
http://www.joelonsoftware.com/articles/Unicode.html
The list of all the language and country codes. Useful for knowing what to name your resource files so that it will be picked up correctly. Ie. en-US is english, United States, es-ES is spanish, Spain.
Language
http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes (639-3 is latest standard, but most examples I see uses 639-1)
Country
http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2
C# Double Buffering, prevent that flicker in custom drawn controls, in 2 lines of code.
http://www.nullify.net/ViewArticle.aspx?article=187
From 8/4/2006
Double Dispatch, Inversion of Controls, ComponentModel
http://en.wikipedia.org/wiki/Double_dispatch
http://forevergeek.com/programming/the_mysteries_of_the_systemcomponentmodel_namespace.php
http://www.urbanpotato.net/default.aspx/document/1757
http://weblogs.asp.net/ahoffman/archive/2004/11/25/270189.aspx
http://weblogs.asp.net/cazzu/archive/2004/05/10/129140.aspx
http://www.martinfowler.com/articles/injection.html
http://www.dofactory.com/Patterns/PatternVisitor.aspx#_self2
.NET moved from a paradigm shift of Service Locator to Provider Pattern
.NET 2.0 Provider Pattern:
http://weblogs.asp.net/rhoward/archive/2004/03/02/83026.aspx
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnaspnet/html/asp02182004.asp
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnaspnet/html/asp04212004.asp
http://www.codeproject.com/dotnet/smartjobmanager.asp
Thursday, April 05, 2007
Subscribe to:
Post Comments (Atom)
1 comment:
Post a Comment