background preloader


Facebook Twitter


Covariance and Contravariance FAQ - C# Frequently Asked Questions. In this post I’ll try to answer the most common questions I find on forums and in documentation feedback about C# covariance and contravariance.

Covariance and Contravariance FAQ - C# Frequently Asked Questions

It’s a big topic for a single blog post, so expect to see a lot of “more information” links. Special thanks to Eric Lippert and Chris Burrows for reviewing and providing helpful comments. What are covariance and contravariance? In C#, covariance and contravariance enable implicit reference conversion for array types, delegate types, and generic type arguments.Covariance preserves assignment compatibility and contravariance reverses it. The following code demonstrates the difference between assignment compatibility, covariance, and contravariance. // Assignment compatibility. string str = "test";// An object of a more derived type is assigned to an object of a less derived type. object obj = str;// Covariance.


Nhibernate. Network. Message Queuing. Tutorial Lesson 05. SimpleTrigger should meet your scheduling needs if you need to have a job execute exactly once at a specific moment in time, or at a specific moment in time followed by repeats at a specific interval.

Tutorial Lesson 05

For example, if you want the trigger to fire at exactly 11:23:54 AM on January 13, 2015, or if you want it to fire at that time, and then fire five more times, every ten seconds. With this description, you may not find it surprising to find that the properties of a SimpleTrigger include: a start-time, and end-time, a repeat count, and a repeat interval.

All of these properties are exactly what you'd expect them to be, with only a couple special notes related to the end-time property. The repeat count can be zero, a positive integer, or the constant value SimpleTrigger.REPEAT_INDEFINITELY. The repeat interval property must be zero, or a positive long value, and represents a number of milliseconds. Quartz.Net - delay a simple trigger to start. C# - repeat job at interval after job is completed. with ASP.NET.


OData and Authentication – Part 6 – Custom Basic Authentication - WCF Data Services Team Blog. You might remember, from Part 5, that Basic Authentication is built-in to IIS.

OData and Authentication – Part 6 – Custom Basic Authentication - WCF Data Services Team Blog

So why do we need ‘Custom’ Basic Authentication? Well if you are happy using windows users and passwords you don’t. That’s because the built-in Basic Authentication, uses the Basic Authentication protocol, to authenticate against the windows user database. If however you have a custom user/password database, perhaps it’s part of your application database, then you need ‘Custom’ Basic Authentication. Using Reactive Extensions for Streaming Data from Database - About My Code. You have probably heard about Reactive Extensions, a library from Microsoft that greatly simplifies working with asynchronous data streams and allows to query them with Linq operators.

Using Reactive Extensions for Streaming Data from Database - About My Code

There are many different scenarios where using rx results in a much more simple and flexible code. This post demonstrates how to use reactive extensions for loading data from database asynchronously in chunks. The Problem Recently I had to load data from sqlite database in grid view but the query was taking long time as there were hundreds of thousands of rows and the query was doing like %search term% filtering. The customer wanted to run the query in background and load data in chunks as they became available similar to sql server management studio. Trackable DTO’s: Taking N-Tier a Step Further with EF4 - DevelopMentor. Download code for this article here.

Trackable DTO’s: Taking N-Tier a Step Further with EF4 - DevelopMentor

There’s been some discussion lately in the blogosphere on Self-Tracking Entities in EF4 and how well they might fit into a heterogeneous environment, where a Java client might consume a .NET service that exposes Self-Tracking Entities. Object lifetime management with Unity. If you have been using inversion of control containers for a while you have most probably used some object lifetime management.

Object lifetime management with Unity

The lifetime management enables reuse of existing object instances for subsequent resolution. It should be also responsible for controlling how the container will release resolved instances. Unity offers lifetime management as classes derived from LifetimeManager. The ADO.Net Entity Framework, POCO Objects and You « Design Concepts And Code « Programming « Rob Sanders: Sanders Technology. Introduction Now if you are like me, you’ve probably had some interest in POCO (plain old CLR objects) objects for at least some time.

The ADO.Net Entity Framework, POCO Objects and You « Design Concepts And Code « Programming « Rob Sanders: Sanders Technology

They are an invaluable tool in the distributed systems and service oriented architecture areas, but up until now they’ve been inaccessible for those designs. In a nutshell, both LINQ to SQL and Entity Framework (v1) class entities did not support serialization for the purpose of stateless transport(such as web service communication). This stems from the embedded context tracking attributes, and the design which stipulates a fairly poor experience for those daring enough to detach entities and “pass them around”.

Value Injecter - object(s) to -> object mapper. The ADO.Net Entity Framework, POCO Objects and You « Design Concepts And Code « Programming « Rob Sanders: Sanders Technology. Introduction.

The ADO.Net Entity Framework, POCO Objects and You « Design Concepts And Code « Programming « Rob Sanders: Sanders Technology

Custom WSDL Publication. The service in this sample is marked with two custom attributes.

Custom WSDL Publication

The first, the WsdlDocumentationAttribute, accepts a string in the constructor and can be applied to provide a contract interface or operation with a string that describes its usage. The second, WsdlParamOrReturnDocumentationAttribute, can be applied to return values or parameters to describe those values in the operation. The following example shows a service contract, ICalculator, described using these attributes. public void ExportContract(WsdlExporter exporter, WsdlContractConversionContext context) { if (contractDescription ! = null) { // Inside this block it is the contract-level comment attribute. // This.Text returns the string for the contract attribute. // Set the doc element; if this isn't done first, there is no XmlElement in the // DocumentElement property. context.WsdlPortType.Documentation = string.Empty; // Contract comments.

DataContract Serializer and IsReference property « Zulfiqar's weblog. In .net Framework 3.5 SP1, DataContractSerializer supports by-ref object graph serialization by using the standard xsd:ID/xsd:IDREF attributes.

DataContract Serializer and IsReference property « Zulfiqar's weblog

You can set the IsReference=true on your DataContract definition and serializer will generate XML elements with IDs/IDREFs attributes and will link them together rather embedding them inside each other(default behavior). Also if you examine the XSD generated by WCF as part of the metadata export, it will also contain the standard ID/IDREF xml schema attributes. Because of this, xml can be correctly parsed and understood by any framework in a standard way. This change will enable serialization of object graphs having circular references (which wasn’t possible previously – at least not without writing custom code) and will also reduce the size of the serialized xml.

WCF cyclic references support. WCF DataContract serializer isn't by default aware of cyclic object graphs. If you encounter the Object graph for type 'X.Y.Z' contains cycles and cannot be serialized if reference tracking is disabled error - read to the end. There is a simple solution and it's well documented in the Preserving Object Reference in WCF article.

However the code is very chaotic and contains mistakes. I've made several classes to support a simple and powerful control over the DataContract serialization parameters. DateTime.ToString() Patterns. All the patterns: C# - Custom object factory extension for Unity. The Truth About Value Types - Fabulous Adventures In Coding. Excelent post, Eric! By the way, I found your blog while searching for this subject (your older post). I think most of this "local variables are allways stored on the stack" conviction comes from unmanaged world. One time, in an interview, one guy asked my about this, knowing that my primary programming language is C#. Strong opinions, weakly held. Can we define implicit conversions of enums in c# SaveOrUpdate Vs Update and Save in NHibernate. Pattern Matching in C# - Part 1. Monday, April 07, 2008 2:00 AM bart In the previous episode of this series we took a look at the concept of pattern matching as it exists in a couple of functional languages out there as well as how we're going to map it to C# 3.0 syntax.

We left off with the exercise of guesstimating the public contract of our Pattern`1 class based on this sample: string message = new Pattern<string>(x) .Match((string name) => new Person(name, 25), name => name + " is 25 years. ") .Match((int age) => new Person("John", age), age=> "John is " + age + " years. ") .Else(() => "Unmatched object"); Pattern Matching in C# - Part 2. Tuesday, April 08, 2008 2:00 AM bart In our journey to find the perfect match, we've arrived at an interpreter-based pattern matcher in the previous post. Although there are quite some limitations and the syntax isn't as sweet as we'd like it to be, it's fully functional. However, what about the performance of our pattern matcher?

MEF - Arrange Act Assert. Managed Extensibility Framework - Building Composable Apps in .NET 4 with the Managed Extensibility Framework. With the upcoming Microsoft .NET Framework 4, you’ll find an exciting new technology at your doorstep that will greatly simplify your application development. Fluent Validation with MEF and PRISM. Events and Races - Fabulous Adventures In Coding. Dotfuscating Strong Named Assemblies. .NET-fu: Signing an Unsigned Assembly (without Delay Signing) - OJ's rants. Arrange Act Assert - Jag Reehal on Agile Development, ASP.NET MVC, Silverlight and all manner of good stuff. Windows® API Code Pack for Microsoft® .NET Framework. Actipro Software. Compiler - DSL: from DSL rules into C# expressions. Expression Trees (C# and Visual Basic) Expression trees represent code in a tree-like data structure, where each node is an expression, for example, a method call or a binary operation such as x < y.

You can compile and run code represented by expression trees. This enables dynamic modification of executable code, the execution of LINQ queries in various databases, and the creation of dynamic queries. Validation in a DDD world. It’s a common question, “Where do I put validation?” Simple answer: put it where it’s needed. LINQ: Building an IQueryable Provider - Part I - The Wayward WebLog. Public class Query<T> : IQueryable<T>, IQueryable, IEnumerable<T>, IEnumerable, IOrderedQueryable<T>, IOrderedQueryable {

Download LINQPad. Irony - Language Implementation Kit/Grammar/Terminals. Terminals are the tokens identified by a scanner and passed to the parser. Irony provides a handful of key terminals that are found in almost every programming language (comments, identifiers, string literals, etc.). Standard terminals[edit] These terminals are already defined in the Grammar base class: Irony - .NET Language Implementation Kit. - View Discussion. Writing Your First Visual Studio Language Service. Introduction. WWW DSL using Irony - Part 1. Irony .NET Language Implementation Kit « <CharlieDigital /> Irony - .NET Language Implementation Kit. Writing Your First Domain Specific Language, Part 1 of 2. .net - How do I create this expression tree in C# How to: Use Expression Trees to Build Dynamic Queries (C# and Visual Basic)