Showing posts with label dotnet. Show all posts
Showing posts with label dotnet. Show all posts

Memory management in .net

Understanding memory management in .net framework is a rather sticky one. There are quite a few terms that would intimidate the beginner. 


Here is a nice comical version of memory management in .net.  Neatly explained using illustrations, this would be of help in understanding this topic.

Link

Source

Stacks Heap for dummies

Here is a brilliant and simple article on stacks and heaps. written in a lucid language this is sure to make you understand the concepts easy.


.net 4.0 framework poster

.net framework poster
click

.net reflector

Reflector is an important tool if you are developing applications in .net. I use this and various addins that come with it.
Here is a nice article on .net reflector and does show many things that were not known so far :)

WCF very basic info

Very very basic information on WCF.

what is WCF

Windows Communication framework. The name says it all, WIndows servies that allows 2 modules to communicate.

how different is it from existing technologies?

How different is WCF from webservice, remoting....?
Well WCF extends the transport layer to include TCP/IP, IPC in addition to HTTP. WCF logically ties together all available modes of communication like Messaging, webservices, remoting into 1 unit.

Further info :

http://msdn.microsoft.com/en-us/library/aa738737(printer).aspx

http://keithelder.net/blog/archive/2007/02/27/ASP.NET-Web-Services-and-WCF-Very-Different-Animals.aspx

Any specific advantages?
Earlier, if you had 2 modules to interact with each other, it had to be either
1) webservices if its different environment modules . example: if a dotnet app and a java app needed to talk to each other this is the approach used
2) If both apps were in microsoft platform, remoting was the best option
3) For asynchronous transfer use messaging

Now, WCF encompasses these together.


what abt the requirements for running this?
dotnet 3.5 is the base requirement.


.net cheat sheet

Sometimes it's tough to remember the page life cycle events. Here is a simple cheat sheet for such page load events. Link also contains more useful cheatsheets.

.net Garbage collection

Useful links to .net garbage collection
Basic article on GC
Web cast on GC (requires MS passport account)
Generations in GC

Dotnet by example

MS dotnet by itself is so vast that its tiring to read all those materials from MSDN. If we had some source where concepts are explained in nice examples wouldn't it be fine? Well the prayers are answered. Here is the link for learning dotnet in samples

VS 2005 keyboard shortucts

Bored with frequently accessing the mouse in VS2005 for c#? here is a nice poster that you can use to learn keyboard shortcuts.

Type forwarding in .net 2.0

For the uninitiated, type forwarding is a way of letting know your .net consumers that the previously existing types have been moved to some other assembly. To be more in detail, assume we had a franctic deadline to meet and so built a single dll with both database connection and loggging abilities coded into it.
namespace MyDB
{
class Logger
{//code for logger goes here}
class DBHelper
{
//code for DB helper goes here
//DB helper also uses logger functions
}
}

You have shipped the dlls to your consumers and they are happy to use it. Now, here comes our performance/design team saying its bad to have different functionalities in the same assembly and it would make sense from design perspective to move them to different dlls. example dbhelper.dll, logger.dll. Yes you do agree but how on earth am I going to pullback on the running applications?

Here comes type forwarding to our rescue. All you need to do is, do like this:

push the logger class into a different file/assembly. So logger.dll contains only logger functions and the DBHelper.dll now contains only DB related functions.

On top of the DBHelper class, add the following attribute:

[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(Logger)))]

Now ship the dbhelper.dll and logger.dll together to your existing consumers and next product release. The directive above ensures, if existing consumer applications try to access logger functions in dbhelper.dll, they would be redirected to logger.dll instead. So in this way your backward compatibility is maintained and your design team is also happy.

ASP.net page life cycle 2.0 vs 1.1 diagram

Here is a nice image of what's new in asp.net page life cycle. This also compares the differences between 1.1 and 2.0 versions.



AspNet_Page_LifeCycle.jpg

ASP.Net Control Execution Lifecycle

Anybody worked with asp.net for a couple of years would know the page life cycle of an asp.net page. But, how about the way in which the controls are rendered and viewstate maintanence? here is a nice article that just describes it



Control Execution Lifecycle



Confusions in String concatenation in c#

The first piece of advice we receive during performance exercises relate to usage of stringbuilder class instead of "+" operator. So we did follow it religiously and used stringbuilder everywhere for concatenation. Now, there seems to be a better option than using stringbuilder. Use String.Concat when using onetime concatenation, use stringbuilder in loops. More information can be found in this link

nDOC is dead

nDOC seems to have hit the end, rather sometime back. The reasons being cited by the dev admin of nDOC is,

1) lack of funds for full time involvment
2) Release of Sandcastle : I quote,
Once ‘Sandcastle’ is released, it is my belief that it will become the de-facto standard and that NDoc will slowly become a stagnant side-water. This will happen regardless of technical considerations, even if Sandcastle were to be less feature-complete. It's just an inevitable result of MS's 'not-invented-here' mentality, one only has to look at Nant and NUnit to see the effects of MS 'competition'.

For reason1, is there anyway many of us who are not in US can donate for these wonderful tools which is a result of just passion for product? If there are, I would be glad to donate for the cause.

Details are here

Cruise Control

If you were wondering how to get your nightly builds neatly automated, here is the solution.
Nice article for Cruise Control :).

Cruise control makes it possible to build continuos integration systems which can watch out for changes to files in VSS/CMSYnergy/ repositories and then initiates the build. Also contains features to invoke tools like NUnit, Nant etc.

http://www.cornetdesign.com/2005/08/cruisecontrolnet-nant-and-boy-do-i.html

Really amusing way to explain delegates

Delegates

Page Life-cycle in ASP.NET

What happens when you type in that .aspx in address bar? if you want to know, go here Page Life-cycle in ASP.NET

Whats View State?

Viewstate and demystifying it
Here

Tuning Up ADO.NET Connection Pooling in ASP.NET Applications

Basic article about tuning Up ADO.NET Connection Pooling in ASP.NET Applications. Nevertheless handy one when you run into unforeseen errors :)
15 Seconds : Tuning Up ADO.NET Connection Pooling in ASP.NET Applications

Building a 3-Tier Application using ASP.NET

Nice article for introduction to 3 Tier architecture- Needed this for a presentation to be done to a tech savvy client (oxymoron :)) Building a 3-Tier Application using ASP.NET

My Other blog

Welcome

Welcome reader, you are reading my blog that showcases positive news to cheer up.
In my other life, I love software architecture and design, I also focus on project management skills. My other blog, concentrates on technical and project management related articles and notes.
http://aslaxmi.blogspot.com