"hello world"
article in Tech programming

.NET programming

The size of .net is impressive - > 11,417 types, 400,000 properties,events and methods in >4000 classes.
Brad Abrams : Number of Types in the .NET Framework
John W Powell : C# and .Net Framework Features by Version Quick Reference
This makes learning .net a very large task...and very powerful.

As a C/C++ pro, I didn't know how to feel about .NET when I first saw it. I had already spent a ton of time learning C++ COM objects using MFC/ATL/WTL...... and now another switch.

COM was always the promise of cross platform support, but it never delivered. Instead we got DLL hell and deployment headaches. Hopefully .NET will alleviate these COM shortcomings. Will Microsoft ever port .NET to the MacOS and Linux?! That is what I really want to know. (silverlight that project?) Mono is a nice possibility but it doesn't provide things in the MS namespace. It would be nice if we could write true cross-platform applications.

I'm very excited to be a bit more declarative when programming. Most of the new stuff like XAML, WCF, and WF provide a nice framework of models which are declarative in nature. Writing more declarative programs will help to reduce program complexity and increase separation of concerns.


I would really like to see cross platform WPF implementations! The whole click-once deployment is a beautiful thought, but it should be click-once everywhere (mac/linux). Otherwise, why wouldn't I use something that is cross platform(DHTML/AJAX)....it is important to me.

.NET Fiddle - .net fiddle faddle.

Gates talks up declarative modeling language effort | InfoWorld | News | February 11, 2008 | By Paul Krill


Download details: .NET Framework Version 2.0 Redistributable Package (x86)
Woot, the SP1 was delivered.
Download details: .NET Framework 3.5 Service pack 1
How do I tell if .net 3.5 SP1 is installed? - Stack Overflow
.NET 3.5 SP1: Changes Overview - Patrick Smacchia [MVP C#]
Download details: SQL Server Compact 3.5 SP1 Beta for ADO.Net Entity Framework Beta 3
The .NET Framework 3.5 Commonly Used Types and Namespaces poster (PDF)

MSDN Forums
MSDN Code Gallery - Home
.Net community discussing Microsoft server side development
Sandcastle Help File Builder
The Region: News and Views of Microsoft Regional Directors
.NET Cheat Sheets « Just Sayin’ More Words



CodeProject: A Release Mode Breakpoint Using Reflection Emit. - sample of generating some IL on the fly. neato.



System.addin

System.Addin allows you to version your addins independent of the host versioning.
System.Addin also isolates plugins into AppDomains, which allows you to protect the host and unload plugin DLLs.
Addins can be ClickOnce deployed.
Using "CrossBow" allows you to run winforms and wpf addins together.
Managed Extensibility and Add-In Framework - Home
CLR Add-In Team Blog
Managed Extensibility and Add-In Framework - Release: Sample- Reliable Extensible Calculator V2
Jack Gudenkauf (JackG) WebLog
CLR Add-In Team Blog : Video: Jack Gudenkauf on the BCL and Add-ins [Jack Gudenkauf]
How To: Build an Add-In using System.AddIn - Guy Burstein's Blog
software greenhouses » Part II - Windows Controls Extensibility with .NET 3.5 CLR Add-Ins using WPF and Crossbow


AppDomains,multithreaded UI

(WF4) Hosting the WorkflowDesigner (or other WPF stuff) in a separate AppDomain - The Activity Designer - Site Home - MSDN Blogs
Running WPF Application with Multiple UI Threads « Eugene Prystupa’s Weblog
How to: Running multiple WPF applications in the same process using AppDomains » Lab49 Blog

Managed Extensibility Framework (MEF)

MEF provides infrastructure to safely and dynamically extend your application.
System.addin framework comes with .net 3.5, it addresses versioning and isolation.
Spins up things is sep. app domains with the ability to do multiple versions.
MEF has part definitions, parts can have deps.
MEF has catalogs with autodiscovery...DirectoryWatchingCatalog.
Typically, containers are types and instances.
MEF allows us to create composable part which is not based on type at all....based on metadata or runtime information (method signature,object data,etc).
Abstracts metadata about the things that get created in the container from the actual implementation
MEF boils down to exports, imports, and contracts.
"Naming and Activation Service (returns an object given a “name”), Dependency Injection (DI) framework, and a Structural Type System (duck typing). These technologies (and other like System.AddIn) together are intended to enable the world of what we call Open and Dynamic Applications, i.e. make it easier and cheaper to build extensible applications and extensions." -- Krzysztof Cwalina.
Krzysztof Cwalina : Managed Extensibility Framework
patterns & practices - Unity - Home is a lightweight extensible dependency injection container with support for constructor, property, and method call injection.
Framework Design Studio - Release: Framework Design Guidelines Digest
Brad Abrams : Managed Extensibility Framework Preview Available
Kent Boogaart: MAF and MEF
MEF has shipped!!! - Glenn Block - CodeBetter.Com - Stuff you need to Code Better!
Kent Boogaart: MAF and MEF



Random .NET

.NET Matters: Scope and More

XAML Power Toys & MoXAML - the one-two knockout punch. « Musings and frustrations
MoXAML Power Toys « Musings and frustrations

C++ in .NET

Moving to .NET and WinFX: A Roadmap for C/C++ Applications
A Baker's Dozen: Thirteen Things You Should Know Before Porting Your Visual C++ .NET Programs to Visual Studio 2005

Visual Studio plugins

Reflector for .NET
CopySourceAsHtml (CSAH) - is an add-in for Microsoft Visual Studio 2005 that allows you to copy source code, syntax highlighting, and line numbers as HTML.
Ten Essential Tools: Visual Studio Add-Ins Every Developer Should Download Now -- MSDN Magazine, December 2005
Find Out What's New with Code Access Security in the .NET Framework 2.0


ASP.net

All of my content relating to ASP.net controls, embedded hosting of ASP.NET, ASP.NET MVC, ASP.net AJAX, and anything else ASP.net has been moved to .NET ASP.net programming the web in MS.


WPF - Windows Presentation Foundation

I've actually decided to create a sep. page for my content relating to WPF .
Please goto .NET WPF - so much more than win32.

Also, I used to have a lot of data related information on this page. That content too has moved.
.NET Data story (MSSQL, MS SQL Express, SQL Compact, TSQL, LINQ, EF)


.NET doesn't support global hooks the same way the old WIN32 apps did. So trusty spy++ won't enumerate winforms properly. This doc provides code and info on how to develop spy++ type functionality. Very cool and informative.
Dr. Dobb's | Spying on .NET Applications | October 1, 2003
Crack.NET - Home - A runtime debugging and scripting tool that gives you access to the internals of a WPF or Windows Forms application.


Assemblies, GAC, and DLL hell

Demystifying the .NET Global Assembly Cache - The Code Project - .NET
Shell Extensions for .NET Assemblies - The Code Project - Free Tools
Locations:
C:\WINDOWS\assembly - the GAC
Assemblies: locating, binding and deploying - The Code Project - Installation


CSLA .NET

CSLA .NET
Rockford Lhotka - Overview of CSLA .NET 3.6 for Windows and Silverlight - wow, look at all the great stuff you can do now with CSLA!
CoDe Magazine - Article: Using CSLA .NET for Silverlight to Build Line-of-Business Applications
Rockford Lhotka



Enterprise library / Patterns and Practices

patterns & practices – Enterprise Library - Release: EntLib 4.0 March 2008 CTP
Screencasts of Enterprise Library and Software Factories - Patterns & Practices
EntitySpaces - Persistence Layer and Business Objects for Microsoft .NET(cost w/src)
.netTiers - Application Framework based on MS enterprise library. (requires CodeSmith)
patterns & practices: App Arch Guide 2.0 Knowledge Base - Home


NDoc Code Documentation Generator for .NET
NAnt - A .NET Build Tool
WebLog of SivaRV : Application Deployment essentials for VS2005 device application developers - Part I
.NET Tools: Ten Must-Have Tools Every Developer Should Download Now -- MSDN Magazine, July 2004
geekProject.com - Tools - includes a VS2003 typed collection wizard, MSMQ utilites, etc.
Scripting and .NET: Visual Studio for Applications Provides Customized Scripting Facilities for Your .NET Project


WCF

I felt that WCF deserved its own page....
.NET Windows Communication Foundation - WCF


Vil - OO metrics, C# metrics, .Net Software Metrics ( MSIL, CIL, IL)


Webservices

Web Services Enhancements (WSE)
PocketSOAP


Build systems / Continuous Integration

CruiseControl Home
Draco.NET


Unit testing

csUnit
NUnit - Home




Spring.NET - Application Framework
Spring.NET RichClient - Trac


Adapdev Technologies, LLC - Codus
GenWise Studio - Generate your ASP.NET 2.0 web application in minutes!
SubSonic: All Your Database Are Belong To Us


Xceed DataGrid for WPF data grid view gridview presenter control XAML XBAP .NET 3.0
.NET Tools: Ten Must-Have Tools Every Developer Should Download Now -- MSDN Magazine, July 2004

Castle Project - is an open source project for .net that aspires to simplify the development of enterprise and web applications.
NServiceBus - Enterprise .NET Communications Framework

Volta

Something new from the microsoft labs....
Volta is about tier splitting and trying to help people distribute work on machines. Volta operates on MSIL to create Javascript implementations.
Microsoft Live Labs : Volta



ClickOnce Deployments

Deploying ClickOnce on Multiple Environments – Kavinda Munasinghe’s Blog
ClickOnce Deployment Via Command Line with Makecert - Software Blueberries
.NET Ramblings - Brian Noyes' Blog - ClickOnce Deployment Application Identity
ClickOnce: Concurrent versions « RobinDotNet's Blog
Walkthrough: Manually Deploying a ClickOnce Application
Mike Bouck's RAM - Taking the ClickPain out of ClickOnce


Clickonce signing key

makecert keyname.cer -sv keyname.pvk
pvk2pfx.exe -pvk keyname.pvk -spc keyname.cer -pfx keyname.pfx


CodeProject: User Friendly Exception Handling. Free source code and programming articles

Connected Services

Microsoft Connected Services Framework (MCSF) Blog
Connected Services Framework - MSDN Forums
Connected Services Framework - Microsoft Service Providers


Managed C++ - C++/CLI

ONDotnet.com -- Introduction to Managed C++
ONDotnet.com -- Intro to Managed C++, Part 2: Mixing Managed and Unmanaged Code
C++ Rules: Power Your App with the Programming Model and Compiler Optimizations of Visual C++ -- MSDN Magazine, January 2005
Pure C++: Hello, C++/CLI -- MSDN Magazine, February 2005
An interesting read, a bunch of programmers take on C++/CLI and how it relates to other languages like C#.
.NET vc Disappointment in VC++ .Net in VS2008
Books on the subject.
Manning: C++/CLI in Action
CLR via C++/CLI
APRESS.COM : Expert Visual C++/CLI: .NET for Visual C++ Programmers : 9781590597569
A project which uses C++/CLI...I also thought it was neat cause it uses a cypress board.
DeviceIoControl & USB
On the mixing of C, C++, C# and Lisp code
TexBlog : Is C++ a first-class .NET language?
Converting Managed Extensions for C++ Projects from Pure Intermediate Language to Mixed Mode


Windows Forms - WinForms

After win32 and before WPF, there was windows forms....
BOOK: Windows Forms Programming in C# And VB.NET

MSDN Code Gallery - Home

patterns & practices - Smart Client Guidance - Home


HelloSecureWorld - microsoft's secure coding headquarters.


VB.net - Visual Basic > 6.0

The Visual Basic Team
vb xml literals
Beth Massi - Sharing the goodness that is VB : XML Literals Tips/Tricks
Overview of Visual Basic 9.0


Scott Hanselman's Computer Zen - Scott Hanselman's 2007 Ultimate Developer and Power Users Tool List for Windows


Open Source .NET - open code in .net land

As you might be able to tell from other parts of my site, I love Open Source. It lets a programmer get a look at what can be done with code and great communities result. It is nice to see the windows crowd get more open source. Codeplex helps.
dasBlog - an open source blogging platform for ASP.NET 2.0

dotnetnuke

dotnetnuke is an OSI certified content management system in the spirit of the original phpnuke/postnuke/etc CMS systems. It is implemented using the ASP.NET (VB.NET) framework. Dotnetnuke is open source BSD and was built with multi-site hosting in mind.
dotnetnuke home
Paint.NET - Features - great open source photo editing app with layers, effects, etc. (MIT)


CodeProject: Creating a DotNetNuke® Module using LINQ to SQL.


D

I wonder if this relates to (Intro - D Programming Language - Digital Mars). The MS D language looks to be XML in nature, so it may also be an entirely different beast.
Microsoft declares its modeling love with a new language | All about Microsoft | ZDNet.com

DLR - Dynamic languages in .NET

Dynamic Silverlight - samples for Silverlight that are written in dynamic languages implemented on the Dynamic Language Runtime (DLR)
VB on the DLR is VBX
DLR languages are hostable.
DLR languages are dynamic languages (think Python/Ruby) - defer processing at compile time to runtime.
Expression trees, metaprogramming, -> programs as data.
WPF: Embedding DLR Scripts in XAML (Python, Ruby) - Part 6, A Very Dynamic Application | ThinkBottomUp


XNA - C# game dev with multi platform support.

To get into the forums and develop with xna, you'll need a gametag..which is free with xbox live silver acct.
Xbox Live Gamercard Generator
Xbox.com | Inside Xbox Live: Gamertag
XNA Creators Club Online - Forums
XNA Team Blog
Download details: Microsoft XNA Game Studio 3.0
Download details: Microsoft XNA Game Studio 2.0
Ziggyware XNA News and Tutorials
Let's Kill Dave!
XNA Tutorials and XNA Tools - Implementing a Flexible Input System


Phalanger - PHP in .net!


.net micro framework (.net for small embedded devices)

.NET Micro Framework
exposes hardware through a managed code object framework.
includes buses to I2C, GPIO, interrupts, etc.
came from TinyCLR project - remember SpotWatch.
only c# now, doesn't support generic either yet...vb coming.
bootable runtime that runs bare metal on hardware.
this is unlike compact framework in that it is smaller and doesn't require an OS.
Includes TCP/IP stack and will soon include web services support! (DPWS) very cool!


XML Serializing

When serializing types within .NET...and UTF encoding
By default when creating XML using XmlSerializer and a StringBuilder, it generates the output in UTF-16.
Many times you need it in UTF-8 for a particular service, to do this, you need to use a XmlTextWriter to provide the proper encoding:
Serializing an Object to an XML String
System.Xml. XmlSerializer Examples
You may notice some extra bytes before the XML declaration(0xEF 0xBB 0xBF). These bytes are the byte-order mark (BOM) which is added by default when using UTF8Encoding.
To remove the BOM, you have to use the UTF8Encoding constructor to turn it off.
Encoding enc = new UTF8Encoding(false);
XmlWriter, Strings and Byte Order Marks - Rick Strahl's Web Log


People with good books

Books by Charles Petzold



log4net

These days, it might be good to use a nice logging framework like log4net.
Provides Nested Diagnostic Context (NDC) and Mapped Diagnostic Context (MDC) for tracking down issues related to multiple concurrency..threads, resources, and what not...
For the standard levels, we have the following ordering: TRACE < DEBUG < INFO < WARN < ERROR < FATAL.
If you are using NHibernate, it comes along as a dep....why not use it.
Apache log4net - Apache log4net: Home
Elegant Code » Getting Started with Log4Net
JEF CLAES ON .NET AND LIFE: Log4Net: log.Debug(String.Format()) versus log.DebugFormat() - So to avoid logging breaking your application, you should use the DebugFormat(), WarningFormat(), InfoFormat(), ErrorFormat() methods instead of String.Format() to format your log message. This should be a best practice.
Lee Campbell: Logging in modern .NET applications - doesn't talk about log4net, but does take a nice look at the requirements and complexities involved with application logging.



P/Invoke cheat sheet - Just code - Tamir Khason
How to P/Invoke VarArgs (variable arguments) in C#? ... or hidden junk in CLR - Just code - Tamir Khason

WIN32 Errors from pInvoked functions?

Use System.ComponentModel, it defines the Win32Exception class. The default constructor automatically reads the last win32 error in the system. You can use the NativeErrorCode for the win32 error code and Message for the error description.
catch(Win32Exception w) {
		Console.WriteLine(w.Message);
		Console.WriteLine(w.ErrorCode.ToString());
		Console.WriteLine(w.NativeErrorCode.ToString());
		Console.WriteLine(w.StackTrace);
		Console.WriteLine(w.Source);
		Exception e=w.GetBaseException();
		Console.WriteLine(e.Message);
 	    }


Dependency injection / IoC / Dep Inject

essence with less ceramony
ioc - sensible defaults.
StructureMap Home Page
Ninject: Lightning-fast dependency injection for .NET
autofac - Project Hosting on Google Code
patterns & practices - Unity - a lightweight extensible dependency injection container with support for constructor, property, and method call injection.
Inversion of Control Containers and the Dependency Injection pattern
Chapter 33. IoC Quickstarts - from Spring.Net
AutoMapper - AutoMapper is an object-object mapper. Object-object mapping works by transforming an input object of one type into an output object of a different type.


It is annoying to me that the default install of visual studio does not put installutil in the path.
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\InstallUtil.exe

I've also found that I can't uninstall service because I moved the .NET executable that installed the service!
Best way to clean this up is to delete the service reg keys from [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\].

Extended OS features in .NET (Vista/Windows 7)

Windows 7 .NET Interop Sample Libraries - Windows 7 for Developers - The Windows Blog
Windows 7 Managed Code APIs - Windows 7 for Developers - The Windows Blog - talks about some of the samples, WPF Explorer Browser Demo...
Windows 7 Programming Guide – Libraries - Windows 7 for Developers - The Windows Blog
Windows® API Code Pack for Microsoft® .NET Framework (v0.90) - Home - Windows® API Code Pack for Microsoft® .NET Framework provides a source code library that can be used to access some new Windows 7 features (and some existing features of older versions of Windows operating system) from managed code
Vista Bridge Sample Library 1.4 - Home - contains source code for assemblies that provide managed code developers access to Windows Vista features that are not available in the .NET Framework. Some of the features included in the Vista Bridge Sample Library are - Vista style Task and File Dialogs, Common Open and Save dialogs, Application Recovery and Restart, Known Folders, Network Lists, Power Management, User Account Control, CommandLink control, Aero Wizard Control, System provided icons etc.



Clickonce

WindowsClient.net: .NET Client Applications: .NET Application Updater Component - .NET Client Applications: .NET Application Updater Component talks about clickonce manually...


Charts in .NET

Download details: Microsoft Chart Controls for Microsoft .NET Framework 3.5
Samples Environment for Microsoft Chart Controls - Home


Fluent code

Writing code fluently makes things more concise and readable for those people accustomed.
Fluent interface - Wikipedia, the free encyclopedia - Martin Fowler's definition... MF Bliki: FluentInterface
Fluent.NET - Make the .NET Framework more fluent.
Fluent NHibernate
Structure Map Fluent Interface
Rocks - Mono - Provide useful extensions for the .NET Framework. Mono.Rocks is a library which aims at providing useful extensions methods for the base class libraries.


Dictionary where the key values(K) are case insensitive.

Dictionary argList = new Dictionary(StringComparer.CurrentCultureIgnoreCase);


Flatten List to a comma delimited list using string.Join

string.Join(",", mystrings.ToArray());
var firstNames = string.Join(",", (from book in books select "\""+book.Title+"\"").ToArray());


expando object

System.Dynamic in .NET 4.0
C# Frequently Asked Questions : Dynamic in C# 4.0: Introducing the ExpandoObject


Aspect Oriented Programming - AOP

linfu - Project Hosting on Google Code - A framework that adds mixins, inversion of control, DbC, and other language features to the Common Language Runtime.
SharpCrafters – The Creators of PostSharp - easily write and apply custom attributes that add new behaviors to your code - tracing, thread management, exception handling, data binding, and much more.


httpclient in .net45 WCF Web API

HttpClient, it lives, and it is glorious. | Bizcoder
HttpClient makes GET and POST very simple | Jayway Team Blog - Sharing Experience
Created: 2007-06-30 14:04:26 Modified: 2014-07-06 00:08:59
/root sections/
>peach custard pie
>linux
>windows
>programming
>random tech
>science
>research


moon and stars



My brain

Visible Dave Project



L:0 I:0 A:0