Thursday, August 31, 2006
Wednesday, August 30, 2006
SimpleInt
SimpleInt is a simple, light weight application integration framework. If you need to recieve information/messages from one application, translate them into another format, log them, and then send them to other applications then SimpleInt is it.
Getting information from one system to another system is a constant problem and a very common requirement in software development today. Getting different systems to actually work together and collaborate is really hard. The objective of the SimpleInt project is to a create simple, robust, and extensible integration server.
Link
Posted by
Steve Pietrek
at
8/30/2006 07:47:00 PM
0
comments
Links (8/30/2006)
C# and VB.NET
- Send Text Messages to Cell Phones from a VB.NET Application
- C#: Is the Party Over? huh, already?
- Giving Enums a Little Love
- Good Exception Management Rules of Thumb - Scott Hanselman's thoughts
- Displaying drill down rows in datagrid
- Web SQL Utility (application to run queries against your databases)
- Understanding ViewState in ASP.NET
- Control Access to File Download
- Simple Integration with SimpleInt
Delphi
Patterns
- Provider Model Design Pattern Part 1 Part 2
- PatternShare Community - community site for patterns
Posted by
Steve Pietrek
at
8/30/2006 10:00:00 AM
0
comments
Tuesday, August 29, 2006
Scott Hanselman's 2006 Ultimate Developer and Power Users Tool List
The latest interation of Madden has just been released. Must also be time for Scott Hanselman to post his "2006 Ultimate Developer and Power Users Tool List for Windows".
All I can say is WOW! Lots of great stuff. Now to find time to research everything.
Link
Posted by
Steve Pietrek
at
8/29/2006 10:36:00 AM
0
comments
Links (8/29/2006)
C# and VB.NET
- Parsing Command Line arguments
- Use Rules in your applications
- Implementing complex data binding in custom controls
- Cabinet File (*.CAB) compression and extraction
- Delegate-based XML Processor for Configuring Objects from XML
- Concurrent Programming in C# Intro (Larry O'Brien)
- Validation without Postback
- Process data with in XML file
- The subject is Predicates: On the use of Predicates in C#
- Get ID of the database table of the selected row of GridView using checkbox
- Dynamic fragments in cached web pages
- ASP.NET ActionPack 1.0.1 Released
Tools
Posted by
Steve Pietrek
at
8/29/2006 10:00:00 AM
0
comments
Monday, August 28, 2006
Delphi's Missing Piece
I have been a Delphi programmer since the Delphi 1 days. I have been very pleased with both Borland and Delphi. Now this is not one of those, it's been nice but now I am going to Visual Studio/C# (well sorta it is). I do see moving some code to Visual Studio and C# (a result of being bought by a larger company who is Visual Studio-centric) but we have 10 years of code written in Delphi and there is no logical reason to rewrite it all. We will continue using Delphi for the forseeable future and I personally wish DevCo luck in their new endeavors.
As someone who is dabbling in the Microsoft world as well as continuing to follow Delphi, one missing piece I see is quality sample code resources for more experienced programmers. Now don't get me wrong - there are lots of resources out there. Borland has great newsgroups. There is Delphi Programming at About.com. There are plenty of good blogs like Nick Hodges, Marco Cantu, and Hallvard Vassbotn. The problem is they are few and far between.
Nick is putting together a great series of Camtasia videos for "beginning" Delphi programmers. Good for what DevCo is trying to achieve - more users. The problem is there are lots of Delphi programmers who understand the basics but want more and have a difficult time finding it.
One of my favorite websites/blogs is the CodeKeep C# Feed. Everyday there are code snippets on different C# topics. For me, this is one of the best ways of learning code - reading what others write. There is a CodeKeep Delphi Feed but it only has 2 entries (ouch!). Another tool I use is Reflector - another excellent source for learning code. To give Borland credit though, being able to read the vendor's source code is priceless.
What I find lacking though is more advanced examples. I have blogged quite a bit on different patterns such as MVC for .NET. One thing I find interesting is there are quite a few Delphi programmers who want to know how to do MVC in Delphi. How do I know this? Because there are usually 3-4 referrals per week to my blog searching for "MVC + Delphi".
For about 5 years, my experience with Delphi was basic at best. Adding components, hooking up properties, and writing lots of procedural code. I realized this was not a good career move. I started focusing on object oriented technology, writing my own components, attempting patterns, etc. Although this helped, with minimal resources (books, websites, blogs), it wasn't as easy as it could have/should have been. With minimal resources and time constraints, and with my (lack of) experience, it just wasn't productive.
Fortunately for me, we hired a very experienced Delphi programmer who for the past few years has mentored me and helped me understand how to be a better Delphi programmer. One area Mark, my mentor, has really helped me focus is enumerations. He would tease me (putting it politely) for writing code such as the following (although the code is stupid; hopefully you get the idea of the power of enumerations).
if (AType = '001') then LoadCustomer
else if (AType = '002') then LoadSalesRep
else if (AType = '003') then LoadProduct;
I would hear the following:
What's wrong with it? Nothing really....
What exactly is Type '001'? Something about Customers...
What happens if you need to change the value? Search and replace...
With enumerations, you can clean up this code, make it more understandable, and more maintainable. First you define the enumeration:
TProcessType = (ptCustomer,ptSalesRep,ptProduct);
Now the code can be cleaned up a little more:
case AProcessType of
ptCustomer: LoadCustomer;
ptSalesRep: LoadSalesRep;
ptProduct: LoadProduct;
end;
Still, it can be cleaned up further. You can define an array of type "procedure of object". This is an array of methods.
TProcessType = (ptCustomer,ptSalesRep,ptProduct);
TProcArray = array[TProcessType] of procedure of object;
Then you can define an internal field:
FProcArray: TProcArray;
Next, you define your list of methods in the interface section:
procedure LoadCustomer;
procedure LoadSalesRep;
procedure LoadProduct;
procedure LoadType(AType: TProcessType);
In the creation of the object (form, component, etc.) you can hookup each method to each TProcessType:
FProcArray[ptCustomer] := LoadCustomer;
FProcArray[ptSalesRep] := LoadSalesRep;
FProcArray[ptProduct] := LoadProduct;
Calling the method is pretty straightforward now:
procedure LoadType(AType: TProcessType);
begin
FProcArray[AType];
end;
I'm hoping there are more bloggers out there willing to post about more advanced Delphi topics. Nick Hodges mentioned after he finishes up the current Camtasia videos for Delphi beginners he is going to focus on more advanced topics. I'm looking forward to those videos. Lets hope there is more focus on the experienced Delphi programmer.
Posted by
Steve Pietrek
at
8/28/2006 08:38:00 PM
0
comments
Web Presentation Patterns
Johnson Smith has spent some time putting together a list of resources for web presentation patterns. Some include Page Controller, Front Controller, Observer, etc.
Link
Posted by
Steve Pietrek
at
8/28/2006 08:20:00 PM
0
comments
New Website - CSharpFeeds.com
New website for C# information (CSharpFeeds.com). Based on VBFeeds.com. I've been following since it was first announced. Very good resource.
Link
Posted by
Steve Pietrek
at
8/28/2006 07:52:00 PM
0
comments
Links (8/28/2006)
C# and VB.NET
- Custom XPath Functions
- LogString: A Simple C# Application Event Logging Class
- AltSerializer - An alternative binary serializer
- Password protection IO streams
- C# Map Network Drive (API)
- Implementing IDisposable and the Dispose Pattern Part 1 Part 2
- Control the layout of your input form
- Event logging in a .NET Web Service
- Working with Web Services using ASP.NET
- Simple CMS Beta has been released
Posted by
Steve Pietrek
at
8/28/2006 10:00:00 AM
0
comments
Sunday, August 27, 2006
Links (8/27/2006)
C# and VB.NET
- C# function to return the type of child object contained in collection or list
- Asymetric Encryption in .NET
- Closures and Anonymous Functions (via Jason Haley)
- A control to display pie charts
- Perform Asynchronous by using Multithreading (free online course)
- Unzipping in memory using SharpZipLib (via Jason Haley)
- **Differences between Structs and Classes
- An easy to use URL file downloader for .NET
- Protect non-.NET assets using a .NET Reverse Proxy with Forms Authentification
- Using the Substitution Control in ASP.NET 2.0
Posted by
Steve Pietrek
at
8/27/2006 10:00:00 AM
0
comments
Thursday, August 24, 2006
Links (8/24/2006)
C# and VB.NET
- SAP Proxy Generator Add-in for VS 2005
- Dynamic reports with Microsoft local report engine
- C# List Control Utility
- Introduction to .NET Framework 2.0 Nullable Types
- Command Prompt Control
- Using Control State in ASP.NET 2.0
- ScrollingGrid: A cross-browser freeze-header two-way scrolling DataGrid
- Globalization and localization demystified in ASP.NET 2.0
- Extensive study of GridView export to Excel
- Working with Reporting Services using SharePoint
- Writing custom editors for Web Parts
Posted by
Steve Pietrek
at
8/24/2006 10:00:00 AM
0
comments
Wednesday, August 23, 2006
VB.NET and C# Comparison Table
A table showing syntax differences between VB.NET and C#. This is not a who's better post. Just the facts.
Link
Posted by
Steve Pietrek
at
8/23/2006 02:39:00 PM
0
comments
C# and VB.NET Links
List of interesting links devoted to C# and VB.NET. This is a WIP post.
- A Priority Queue in C# (via Jason Haley)
- Argument processing and C# 2.0 iterators (via Jason Haley)
- Descriptive Enumerations (via Jason Haley)
- Differentiate Hiding and Overriding
- Thread Synchronization using VS.NET 2005
- Templating via Generics & Delegates
- Attributes in C#
- Snippet Enumeration Utility (via Eric Gunnerson)
- C# ?: operator (or ternary operator)
- C# 2.0: Dealing with null return types (?? operator)
- Using IFilter in C#
- And (&), AndAlso (&&), Or (|), OrElse (||)
- Easy high speed reading/writing of structured binary files using C#
- Even easier high speed reading/writing of binary data files with C# (via Jason Haley)
- Multi Threaded File Reader and Generator
- Cool Tips for .NET
- Outlook Style DataGrid
- Targeting Design-Time Events of User Controls
- Attributes and Reflection
- Access Command Line Arguments in C#
- Object Inspector
- How to Avoid WSOD's in Visual Studio 2005 Designer
- Splash form and loading data in a separate thread
- Tutorial that demonstrates how to sort and search using C#'s List object
- Apply Object Serialization in Real Life Situation
- C# 2.0 Yield Return Iterator
- More on the Yield Statement
- C# Defensive Event Publishing using Interfaces
- C# Anonymous Methods and the Action Object
- Creating a Button component using C#
- Dynamically load a class execute a method in .NET
- Get a directory size
- Limitations of ArrayLists in C#
- Generics in C# 2.0
- Validate an email address using regular expression
- Two-way Remoting with Callbacks and Events
- EnumGroupBox - a semi-automatic GroupBox
- Multiple Sorting of Generic Collections on any property
- ActionList for .NET 2.0 (implementation of Borland's TActionList)
- Implementation Patterns with Generics (instead of Collections)
- Domain Objects Caching Pattern in .NET
- Validate IP Address
- Validate Social Security Number (SSN)
- Overriding a property using new and reflection
- 101 Visual Studio 2005 code samples in both C# and VB.NET
- Nullable Types in C#: Basic Introduction
- WinForm Freezer (Delphi's LockWindowUpdate?)
- System.Security.SecureString - mutable string that is encrypted in memory (via Chris Eyre)
- Getting a temporary filename the easy way / Feedback
- Validate Email ID
- Sort a generic list (IList) by ToString() Value
- Clean string using Regex
- Statistical parsing of English sentences using OpenNLP
- Caching Data in WinForms DataGridView in .NET 2.0
- Validate Email Address using Regex
- OnChanged event for User Controls
- Assemblies in .NET
- *** Delegates and Business Objects
- Extract text from PDF (via Jason Haley)
- Logging class with QueryPerformanceCounter
- A Fast Serialization Technique (via Jason Haley)
- WCF serialization rules
- WCF serialization programming model
- An Elegant C# Data Access Layer using the Template Pattern and Generics
- Serializing with .NET 2.0 Generics (via Jason Haley)
- ProcessDialog: for executing long-running code with some thread safety
- Binary Tree, C#, and Delegates Part 1 (via Jason Haley)
- Accessing Outlook items using C# (via Jason Haley)
- GUI Observer - using the observer pattern to handle data updates
- The .NET Framework's new SynchronizationContent class
- Multi-threaded file download manager (via Jason Haley)
- Check if URL Exists
- Testing file access rights in .NET 2.0
- Show folder contents and compare with another folder
- VS2005-like interface using DockPanel Suite
- Sorting using IComparer classes (including Generics)
- Observing change events on a List
<T> in C# - Load and save objects to XML using serialization
- A DelegateQueue Class
- A .NET State Machine Toolkit Part 1
- A .NET State Machine Toolkit Part 2
- A .NET State Machine Toolkit Part 3
- The Art & Science of Storing Passwords
- Design your Football (Soccer) Engine, and Learn How to Apply Design Patterns
- FileHelpers - An Automatic File Import/Export Framework
- OutlookGrid: grouping and arranging items in Outlook style
- DmRules - A helper library for running rules in .NET 3.0
- Client-side XML Data Islands
- .NET Sorting: Compare just about any property of an object
- Adventures in Strong Names with Enterprise Library
- How the 'ref' keyword affects the use of objects
- Enums, Enum Sets, parsing n' stuff (via Jason Haley)
- XML Serialization (via Jason Haley)
- .NET Fundamentals: Type forwarding
- Validating Business Objects
- System tray application basics for .NET 2.0
- Debugger.Log vs. OutputDebugString
- .NET Enum - The Next Level
- Static method reflection (via Jason Haley)
- Winforms Model View Presenter (MVP) (via Jason Haley)
- Advancing the Model-View-Presenter Pattern
- Generics, Serialization, and NUnit (via Jason Haley)
- Function and Method Naming Standards
- Logging using the Composite Pattern (via Jason Haley)
- Overloading the && and || operators (via Jason Haley)
- Updating Component properties in the designer (Smart Tags)
- The Null Method Operator "?!"
- An animated progessbar control with many extras
- Asynchronous Invocation Using BackgroundWorker
- Study of Delegates
- Back Side of Exceptions
- Polymorphic Databinding Solutions
- Asynchronous method invocation
- Custom Business Objects Helper Class (via Jason Haley)
- Reusable dynamic programming with C# generics
- Binding DataSet and Generic .rdlc Reports to a ReportViewer at Runtime
- C# Best Coding Practices
- Simple class to catch unhandled Exceptions
- How to find the LastModifiedDate for a file
- Inheritence Versus Interfaces
- Understanding the different generic collections in .NET (List<T>
, BindingList <T> <T>, Collection ) - Object-Oriented Static Destructors
- Dynamic Code Generation vs Reflection
- Passing parameters to predicates
- Serializing and Deserializing objects in .NET
- Understanding Connection Pooling
- Working with weeks in C#
- .NET Exception Handling
- DocManager Control
- Expandable Panel on all 4 Directions
- What's up with BeginInvoke?
- Asynchronous "For" Loops
- A controllable notifying thread queue using generics
- String Formatting in C#
- LWDbComponents - Another Database Component
- A combobox that looks decent when it is disabled
- A C# File Browser
- Selecting a Collection Class
- Simplify Reading and Writing of XML Fragments
- Anonymous methods in C# and its consequences
- Wrapping C# Events with Accessors
- Introduction to the GOF Strategy Pattern in C#
- Use of Proxy when using Web Services
- .NET Tip: Logging Exceptions to the Event Log
- Run process in background / hidden
- A C# set class based on enums
- Finding calling method using reflection
- How to get the calling method and type
- Not Used Analysis - a tool for looking for types, methods, and fields that are not used
- A Windows Explorer in a user control
- Serialize NameValueCollection
- eXpress Persistent Objects for .NET
- ToolStripControllerLabel that extends and shrinks ToolStrip control
- .NET Serialization - BinaryFormatter and SoapFormatter
- WinForms and Data: It just keeps getting better...
- Console app to zip a single file using SharpZipLib
- ****Null-Coalescing Operator in .NET 2.0 (? and ??)
- A new .NET reporting way - MyNeoReport
- C# Script
- Inheritance in C#
- Introduction to the GOF Strategy Pattern in C#
- Asynchronous file I/O using anonymous methods
- Advanced usage of the ?? operator
- Number of weeks in a date range function
- Asynchronous Anonymous Methods
- Deep copying a serializable object in .NET
- ****More Null-Coalescing (??) Operator Love
- How to append to a large XML file
- Setting Enum's Through Reflection
- Office 2007 .bin file format
- Deep Serialization: Binary and SOAP Serialization with a Generic twist
- Casting from a Collection to a Data Table using Generics and Attributes
Posted by
Steve Pietrek
at
8/23/2006 10:00:00 AM
0
comments
Tuesday, August 22, 2006
AJAX/Atlas Links
List of interesting links devoted to AJAX. This is a WIP post.
- AjaxDelegate (via The Daily Grind)
- New Learning AJAX Website
- AJAX Frameworks for ASP.NET Comparisons
- AJAX Patterns Website
- Introduction to Anthem.NET
- Anthem.NET 1.0
- Do Web Developers "Get" AJAX?
- Mastering AJAX, Part 1 and Part 2
- Easy AJAX? MagicAjax.NET
- How to use AJAX
- Bindows - Developing Applications
- AJAX Resources for Beginners (via Robert Scobleizer) another list from Mitch
- MagicAJAX.NET - open source (via The Daily Grind)
- Generic Table Database Maintenance
- Going Beyond AJAX - What's Really Needed for Asynchronous Web Development
- 3 AJAX Example Patterns (Data Reflection, MultiUser, Object Return)
- How to Use AJAX Patterns
- Round-up of 50 AJAX Toolkits and Frameworks (via The Daily Grind)
- Atlas Control Toolkit
- 10 Business Reasons to Use AJAX
- Atlas PasswordStrength Complexity Control (via Scott Guthrie)
- AJAX on-the-fly lookup control with multiple control support
- Video: Using the ATLAS Auto-Suggest TextBox Control
- Another great list of links on AJAX/Atlas/etc.
- Raising and handling events with ATLAS
- 42 Recent AJAX Tutorials
- 60 More AJAX Tutorials
- MagicAJAX - open source project AJAXPanel similar to Atlas' UpdatePanel
- Auto complete text box using AJAX (with Atlas)
- Date picker and Time picker in ASP.NET 2.0 using AJAX (with Atlas)
- How to add Atlas to an existing site
- New ASP.NET "How Do I" videos on Atlas
- Scott Guthrie's Atlas Resources
- Using Microsoft Atlas
- An Introduction to AJAX Techniques and Frameworks for ASP.NET
- Adding "Atlas" Features to an Existing ASP.NET Application
- Using ASP.NET Web Services with "Atlas" Clients
- Creating an AJAX Search Widget
- Separating presentation and code layers using AJAX (via Jason Haley)
Posted by
Steve Pietrek
at
8/22/2006 10:00:00 AM
1 comments
Monday, August 21, 2006
Free E-Book: Developing Time-Oriented Database Applications in SQL
Roy has found a free E-Book on developing time-oriented database applications in SQL.
Here's the direct link
(via Roy Osherove)
Posted by
Steve Pietrek
at
8/21/2006 08:21:00 PM
0
comments
Model View Presenter and Model View Controller Pattern Links
Links for the Model View Presenter (MVP) Pattern.
- Winforms Model View Presenter (MVP)
- Advancing the Model-View-Presenter Pattern
- Model View Presenter (MVP) with ASP.NET
- Model View Presenter Meets ASP.NET 2.0
- The Humble Dialog Box
- Test Driven Development with ASP.Net and the Model View Presenter Pattern
- More Thoughts on Model View Presenter
- A Simple Example of the "Humble Dialog Box"
- Trying out the Model View Presenter Pattern
- In Search of Windows Forms Patterns
- GUI Architectures (Martin Fowler)
- Martin Fowler splitting MVP into Supervising Controller and Passive View
- MSDN Magazine - Design Patters: Model View Presenter
- ASP.NET Supervising Controller (MVP) from Schematic to Unit Tests to Code
- Tying MVP to the ASP.NET Event Model
- Model View Presenter in ASP.NET (many links)
- MVP in ASP.NET with .NET Remoting
- Ingenious MVC is an open source .NET 2.0 framework for authoring Model View Controller (MVC) applications.
Posted by
Steve Pietrek
at
8/21/2006 08:12:00 PM
0
comments
ASP.NET Links
List of interesting links devoted to ASP.NET. This is a WIP post.
- Master Pages in ASP.NET 2.0
- How to maintain state between virtual directories? (via Ali Parvaresh)
- Firing JavaScript events when textbox changes
- Minimizing code behind in ASP.NET 2.0 (via Fritz Onion)
- Simple Factory Pattern side by side with Abstract Pattern
- ASP.NET 2.0 Unhandled Exception Issues
- Abstract Factory Design Pattern in ADO.NET
- Creating Menu Based on Role
- Efficiently Paging Through LARGE Resultsets in ASP.NET 2.0 (via Scott Mitchell)
- *** Real-world, common practices for starting a new ASP.NET project
- Client Side Validation with JavaScript in ASP.NET
- Remote Scripting in ASP.NET
- 4 ways to send a PDF file to an IE Client
- *** Spawning threads, impersonation and .NET 2.0 (via Mike Wood)
- Drag and Drop ASP.NET 2.0 Web Parts in FireFox (with Atlas) (via Christopher Steen)
- Efficient Data Paging and Sorting with ASP.NET 2.0 and SQL 2005 (via Christopher Steen)
- Base Page Class Website Development
- ASP.NET 2.0 Tips and Techniques (via Jason Haley)
- ObjectDataSource in Depth Part I
- ObjectDataSource in Depth Part II
- ObjectDataSource in Depth Part III
- *** ASP.NET Caching Basics
- Create Meta Tags Programmatically in ASP.NET 2.0
- ASP.NET Common Web Page Class Library Part 1
- ASP.NET Common Web Page Class Library Part 2
- ASP.NET Common Web Page Class Library Part 3
- ASP.NET Common Web Page Class Library Part 4
- Master Pages: Tip, Tricks, and Traps
- A Crash Course on ASP.NET Control Development: Template Properties
- *** ASP.NET Memory: You use the same dll in multiple applications, is it really necessary to load it multiple times?
- Strong named assemblies should not be stored in the bin directory
- Check your Web Site today for these common assembly related memory and perf issues
- Source Code for the Built-in ASP.NET 2.0 Providers Now Available for Download
- A Client Script Helper Utility Class
- DropDownList in GridView Method 1 Method 2
- Web Application Settings in ASP.NET 2.0
- Cool MSDN ASP.NET 2.0 GridView Control Article (via Jason Haley)
- Use ASP.NET 2.0's TreeView to Display Hierarchical Data
- Caching Data for Better Performance
- *** BusyBoxDotNet - cool ASP.NET wait dialog demo (via James Avery)
- Validating data in GridView control
- *** Web Parts in ASP.NET 2.0
- Designing Web Services - Contract First
- ASP.NET Wizards and Session Variables
- Configuring your ASP.NET 2.0 Site
- Working Smarter with ASP.NET 2.0 (via The Daily Grind)
- Adding Dynamic Menus with ASP.NET 2.0
- More Efficient Method for Paging Through Large Result Sets (via Chrisopher Steen)
- ASP.NET 2.0 Crash case study: Unhandled Exceptions (via Chrisopher Steen)
- Keeping Secrets in ASP.NET 2.0 - Encryption (via Chrisopher Steen)
- Optimizing Your ASP.NET Pages for Faster Loading and Better Performance
- Using Reflection to dynamically expose business logic through a Web Service
- Caching Domain Objects
- ASP.NET 2.0: Implementing Single Sign On (SSO) with Membership API
- A Crash Course on ASP.NET Control Development: Building Callback Capabilities in ASP.NET Rich Controls
- A little confused by Web Parts Connections in ASP.NET 2.0? This might help.
- Duplicate WebControls at Runtime for Better Web Usability
- Stream File to Browser (Memory Stream)
- Menus in ASP.NET Applications
- SharePoint 2007 and ASP.NET 2.0 Web Parts
- Writing Custom Web Parts for SharePoint 2007
- Export to Excel/Word from Nested GridViews
- A Provider-Based Service for ASP.NET Tracing
- Advanced Caching Techniques in ASP.NET 2.0
- Dynamically Setting the Page Title's in ASP.NET 2.0
- A Short Synopsis of ASP.NET ViewState
- Logging JavaScript Errors to ASP.NET
- Designer support for complex objects on an ASP.NET control
- Extending Controls with new Properties
- Implementing two-way Data Binding for ASP.NET Web Forms
- ASP.NET 2.0 and Web Standards - Expression Web Designer (via Jason Haley)
- *** Adding a zip filter to web services (via Jason Haley)
- ASP.NET Obfuscating the Querystring (via Jason Haley)
- Tips to improve ASP.NET applications (I know another set)
- Tame ASP.NET validation
- Using the ASP.NET 2.0 MultiView Control
- ASP.NET Tip: Create a BasePage Class for all Pages to Share
- Modifying Web.config file programmatically
- How to make ASP.NET applications that support mobile devices
- Localization in ASP.NET 2.0
- A better refresh button for ASP.NET pages
- Browser Detection using ASP.NET
- Create a ViewState Property
- ASP.NET 2.0 Data Binding Samples
- Code to screen scrape a website
- Anonymous Personalization Trick in Web Parts
- A Developer's Introduction to Microformats
- AJAX Enabling ASP.NET 2.0 Web Parts with Atlas
- Examination of the FormView Control (via Jason Haley)
- Multiple form-based programming in ASP.NET
- Service Management (manage services running on a system)
- Dynamically add Web Part controls to WebPart CatalogZone
- Validate multiple objects in ASP.NET
- Passing Server-side values to Client-side script
- How to deploy ASP.NET Web Applications (via Jason Haley)
- Dynamic ASP.NET Form Tabs
- HOWTO: ColSpan and RowSpan in ASP: GridView Controls
- Client side in ASP.NET: Common Javascript functions (via Jason Haley)
- How to send a file from web server to browser
- Invoking a web service without web reference
- ASP.NET Web Application and Windows Authentification
- Asynchronous Web Parts
- Model View Presenter (MVP) with ASP.NET (via Jason Haley)
- Enhancing the presentation of standard validator outputs
- Base Classes and Extending the @Page Directive (via Jason Haley)
- ASP.NET 2.0 Sitemap/Menu Editor (via Jason Haley)
- ViewState Compression (via Jason Haley)
- Asynchronous WebMethod Calls
- Asynchronous WebService Calls - Truth Behind Begin... End... functions
- Model View Presenter Meets ASP.NET 2.0
- ASP.NET 2.0 WebPart Framework Basics
- Taking an ASP.NET application offline
- Writing Custom Web Parts for Sharepoint 2007
- Forms Authentication Timeout
- Store View State in a Persistent Medium, the Proper Way
- Implementing Optimistic Concurrency
- Creating custom sections in web.config
- Bind Xml file to a GridView
- The simpliest error reporting in ASP.NET
- Using Bind with nested properties
- Navigation Patterns in Web Applications
- Themes and Skins, Global Themes, Programmatically Applying Themes
- Increase Web Site Performance with ASP.NET Caching
- Using Data with ASP.NET - 10 of My 'Best Practices'
- ASP.NET Best Practice Analyzer
- Working with GridView without using DataSource controls
- Securing PDF and ZIP Files in ASP.NET
- Scott Guthrie's August 9th ASP.NET Link-Listing
- Exception Handling Techniques in ASP.NET
- ****Extended GridView Control
- A Custom File Upload using a web control and integrated validation
- Establishing ASP.NET 2.0 WebPart Communication
- The .NET 2.0 Framework Provider Pattern
- Exception Handling in C# and ASP.NET
- ASP.NET Tip: Control the layout of your input forms
- Writer cleaner and clearer ASP.NET Session Code
- Testing ASP.NET UI: WATIR Impressions
- Automatic Object Persistency - Part I
- Lost Session variables and app domain recycles
- ASP.NET Page Life Cycle Overview (MSDN)
- ASP.NET Caching Dependencies (via Jason Haley)
- UI for simple HTTP File Downloader (via Jason Haley)
- Getting the currently executing Control in ASP.NET
- Efficiently paging through large amounts of data
- Paging and sorting report data
- ASP.NET/C# File Repository
- Make session last forever
- Sending Email in ASP.NET 2.0
Posted by
Steve Pietrek
at
8/21/2006 10:00:00 AM
1 comments
Sunday, August 20, 2006
Introduction to Generics
I have been a follower of Charlie Calvert for quite some time. Charlie is a highly regarded author who wrote many books on Delphi and gave presentations at BorCon. He recently joined Microsoft as the Community Program Manager for the Visual C# group.
He has recently wrote an excellent introduction on Generics. Good read.
Link
Posted by
Steve Pietrek
at
8/20/2006 08:49:00 PM
0
comments
Practical Tips for Boosting the Performance of Windows Forms Apps
The Practical Tips for Boosting the Performance of Windows Forms Apps article discusses:
- Improving application startup time
- Tuning up control creation and population
- Improving painting performance
- Rendering text and images
- Efficient resource management
- Load fewer modules at startup
- Precompile assemblies using NGen
- Place strong-named assemblies in the GAC
- Avoid base address collisions
- Avoid blocking on the UI thread
- Perform lazy processing
- Populate controls more quickly
- Exercise more control over data binding
- Reduce repainting
- Use double buffering
- Manage memory usage
- Use reflection wisely
Posted by
Steve Pietrek
at
8/20/2006 08:30:00 PM
0
comments
Friday, August 18, 2006
Lock-Free Linked Lists
I have learned much from Julian Bucknall on algorithms. Recently he has posted about Lock-Free Linked Lists using C#.
Part 1
Part 2
Part 3
Posted by
Steve Pietrek
at
8/18/2006 02:46:00 PM
0
comments
ConnectionStrings.com
Provide an easy reference for connection strings. Databases include SQL Server, Access, Oracle, Firebird, etc.
Link
Posted by
Steve Pietrek
at
8/18/2006 01:55:00 PM
0
comments
Wednesday, August 16, 2006
Links to Windows Workflow Foundation
Kurt Claeys has put together a good list of many Windows Workflow Foundation links.
Link
Posted by
Steve Pietrek
at
8/16/2006 09:16:00 PM
0
comments
Tuesday, August 15, 2006
Monday, August 14, 2006
Dina Programming Font
I have been using the Consolas font in both Delphi and Visual Studio for the past 1.5 months - and love it. Dina is another free programming font which looks pretty nice too.
Posted by
Steve Pietrek
at
8/14/2006 08:12:00 PM
0
comments
Unhiding Google Groups
As someone who uses Google Groups about a million times a day, I was a little upset when I realized it was now hidden.
Fortunately someone has found a way to display it.
Below is a link with a Chickenfoot script to run so the link is displayed (before the Video link). This is only available in Firefox.
Link
(via The Daily Grind)
Posted by
Steve Pietrek
at
8/14/2006 08:10:00 PM
0
comments
Creating a Maintainable Software Ecosystem
Great article by Jeremy D. Miller.
Link
Posted by
Steve Pietrek
at
8/14/2006 07:57:00 PM
0
comments
Visual Studio Tools Links
List of interesting links devoted to Visual Studio. This is a WIP post.
- Fast Formatter
- Visual Studio Add-Ins Every Developer Should Download Now
- New Reflector for .NET Version Available
- Visual Studio 2005 Toolbox Utility
- SmartAssembly
- ZIPStudio
- x.doc - A code documentation manager addin for VS 2005
- Regulator - Build Regular Expressions
- Tips and Techniques for Visual Studio
- Ways to use .NET Reflector #1
- Debugging Windows Services under Visual Studio
- Adding Guidelines to Visual Studio
Posted by
Steve Pietrek
at
8/14/2006 10:00:00 AM
0
comments
Sunday, August 13, 2006
Joins - A Concurrency Library for .NET
Comega promised C# programmers a more pleasant world of concurrent programming. Comega had a simple, declarative, and powerful model of concurrency—Join Patterns—applicable both to multithreaded applications and to the orchestration of asynchronous, event-based distributed applications. By exploiting Generics in the Common Language Runtime, we can provide join patterns as a library rather than as a language feature. Offering a library has advantages: The library is language neutral, supporting C#, Visual Basic, and other languages; and the library's join patterns are dynamic, supporting solutions difficult to express with the static join patterns of Comega. The Joins library is efficient and has a simple interface that makes it easy to translate Comega programs to C#. The installer includes a tutorial, documentation, samples, and demos.
Note: Read license agreement - All software on this site is made available for non-commercial use only.
Link
Posted by
Steve Pietrek
at
8/13/2006 10:44:00 AM
0
comments
Saturday, August 12, 2006
Regulazy 1.01 Available
Roy Osherove has announced Regulazy 1.01 is available.
Link
Posted by
Steve Pietrek
at
8/12/2006 11:04:00 PM
0
comments
Thursday, August 10, 2006
"Web Apps Suck Because HTTP is Stateless..."
Dennis Forbes has an article on "Stateless".
Link
Posted by
Steve Pietrek
at
8/10/2006 08:23:00 PM
0
comments
Offline Capable (Internet Explorer) AJAX Client
Hmm...
Link
Posted by
Steve Pietrek
at
8/10/2006 08:15:00 PM
0
comments
Linq beyond queries: Strong-typed reflection
Good article.
Link
Posted by
Steve Pietrek
at
8/10/2006 08:05:00 PM
0
comments
Windows Workflow Foundation Basics
Posted by
Steve Pietrek
at
8/10/2006 07:54:00 PM
0
comments
Wednesday, August 09, 2006
The Future of ASP.NET Web Services in the Context of the Windows Communication Foundation
Good paper on WCF.
Link
Posted by
Steve Pietrek
at
8/09/2006 08:43:00 PM
0
comments
Good articles/links on ASP.NET
From Shahed Khan...
Link
Posted by
Steve Pietrek
at
8/09/2006 08:38:00 PM
0
comments
Rhino Commons
Set of utility classes. At the moment it contains:
- Static Reflection
- Bulk Deleter
- Collection Actions - Find, Select All, Select All Not, etc
- Date Range with operations - For Each Day, For Each Week, For Each Month, etc.
- Disposable Action
- EventArgs
- Which should have been in the BCL. - Property Indexers
- Validation - mostly trivial stuff
- Abortable Thread Pool - slightly modified from the MSDN version.
- WaitForConsumersEvent
- Local Data
Update 8/9/2006: Oren Eini has a good post on how to use Rhino Commons in ASP.NET.
Posted by
Steve Pietrek
at
8/09/2006 08:11:00 PM
0
comments
Tuesday, August 08, 2006
Learn WPF in 5 Days
Karsten Januszewski's 5 day course for learning WPF.
Link
Posted by
Steve Pietrek
at
8/08/2006 01:30:00 PM
0
comments
Sunday, August 06, 2006
Is your Visual Studio 2005 SLOW to Load?
Need to try this out...
Link
Posted by
Steve Pietrek
at
8/06/2006 09:24:00 PM
0
comments
Wednesday, August 02, 2006
Scott Guthrie's ASP.NET 2.0 Tips, Tricks, Recipes, and Gotchas
Posted by
Steve Pietrek
at
8/02/2006 09:41:00 PM
0
comments
Dynamic component binding made easier
Dynamic component binding made easier - An easy to use Microkernel to help reap Contract-First-Design benefits in .NET programs
Very interesting...
Link
Posted by
Steve Pietrek
at
8/02/2006 09:23:00 PM
0
comments


