Friday, June 13, 2008

So I was asked recently if there was a place to find the Twitters of RD's. The answer was no…. until now. I have collected the Twitter aliases of the RD's I know have a twitter account.

Here you go… (In no particular order – Well, actually, in the order that I found them - 29 so far) I have also included a link to their RD Profile on the Region so you can get to know your RD's a little better.

Daniel Egan – Long Beach Ca

Twitter:     http://twitter.com/dotnetdoc
RD Profile:     http://www.theregion.com/profile.aspx?rd=1375

David Yack – Colorado Springs, Co

Twitter:     https://twitter.com/davidyack
RD Profile:     http://www.theregion.com/profile.aspx?rd=1330

Michael Palermo – Phoenix, AZ

Twitter:     http://twitter.com/palermo4
RD Profile:     http://www.theregion.com/profile.aspx?rd=1260

Steve Smith – Kent OH

            Twitter:    http://twitter.com/Ardalis 
            RD Profile:    http://www.theregion.com/profile.aspx?rd=1322

Bill Evjen – St.Charles, Mo

Twitter:     http://twitter.com/billevjen 
RD Profile:  
 http://www.theregion.com/profile.aspx?rd=1203

Brian Noyes – Alexandria, Va

            Twitter:     http://twitter.com/briannoyes 
            
RD Profile:    http://www.theregion.com/profile.aspx?rd=1203

 

Michele Leroux Bustamante – Bonita, Ca

            Twitter:     http://twitter.com/dasblonde 
            RD Profile:      http://www.theregion.com/profile.aspx?rd=1204

 

Derek Hatchard - Moncton, NB, CA

            Twitter:    http://twitter.com/derekhat 
            RD Profile: 
   http://www.theregion.com/profile.aspx?rd=1204

 

Andrew Brust – New York, NY

            Twitter:    http://twitter.com/andrewbrust 
            RD Profile:    http://www.theregion.com/profile.aspx?rd=1163

 

Damir Tomicic – Fuerth, Bavaria, DE

            Twitter:     http://twitter.com/Damir  
            RD Profile:    http://www.theregion.com/profile.aspx?rd=1274

 

Rockford Lhotka – Eden Prairie, MN  

            Twitter: http://twitter.com/RockfordLhotka  
            
RD Profile: http://www.theregion.com/profile.aspx?rd=1245

 

Mark Dunn – Cumming, GA

            Twitter:    http://twitter.com/MarkDunnDTC 
            RD Profile:    http://www.theregion.com/profile.aspx?rd=1333

 

Mark Michaelis – Spokane Valley, WA

            Twitter:    http://twitter.com/MarkMichaelis 
            RD Profile:    http://www.theregion.com/profile.aspx?rd=1380

 

Mauro Sant'Anna – Sao Paulo, SP, BR

            Twitter:    https://twitter.com/msantanna 
             RD Profile:    http://www.theregion.com/profile.aspx?rd=1136

 

Ken Spencer – Greensboro, NC

            Twitter:     https://twitter.com/kspen 
            RD Profile:
    http://www.theregion.com/profile.aspx?rd=1142

 

Gill Cleeren – Tienen, BE

            Twitter:    http://twitter.com/gillcleeren 
            RD Profile    http://www.theregion.com/profile.aspx?rd=1376

Rob Howard – Frisco, TX

            Twitter:    http://twitter.com/robhoward 
            RD Profile:    http://www.theregion.com/profile.aspx?rd=1305

 

Scott Stanfield – Richmond, Ca

            Twitter:    http://twitter.com/seesharp  
            RD Profile:    http://www.theregion.com/profile.aspx?rd=1089

Sondre Bjellås – Oslo, Olso, NO

            Twitter:    http://twitter.com/sondreb/ 
            RD Profile:    http://www.theregion.com/profile.aspx?rd=1334

 

Edgar Sanchez – Quito,Pichincha, EC

            Twitter:   http://twitter.com/EdgarSanchez 
            RD Profile:    http://www.theregion.com/profile.aspx?rd=1119

 

John Alexander – Lees Summit, MO

            Twitter:    http://twitter.com/johnalexander 
            RD Profile:    http://www.theregion.com/profile.aspx?rd=1154

Carl Franklin - New London CT

         Twitter: http://twitter.com/carlfranklin   
         RD Profile:  http://www.theregion.com/profile.aspx?rd=1175

Richard Campbell– Coquitlam, BC, CA

            Twitter:   http://twitter.com/richcampbell
            RD Profile:    http://www.theregion.com/profile.aspx?rd=1238

Bill Wagner - Ann Arbor MI

            Twitter: http://twitter.com/billwagner
            RD Profile: http://www.theregion.com/profile.aspx?rd=1209

Jonas Follesø - LAKSELV, CA, NO

           Twitter: http://twitter.com/follesoe
            RD Profile :  
http://www.theregion.com/profile.aspx?rd=1340

Billy Hollis - Nashville TN

            Twitter: http://twitter.com/thisispointless
            RD Profile:
http://www.theregion.com/profile.aspx?rd=1067

Greg Low - Melbourne, VIC, AU

            Twitter: http://twitter.com/greglow
            RD Profile : http://www.theregion.com/profile.aspx?rd=1338  

Joel Semeniuk - Winnipeg, MB, CA

            Twitter: http://twitter.com/Joel_Semeniuk 
             RD Profile : http://www.theregion.com/profile.aspx?rd=1155 

Adam Cogan - NEUTRAL BAY, SYDNEY NSW, AU

               Twitter: http://www.twitter.com/adamcogan
               RD Profile :
http://www.theregion.com/profile.aspx?rd=1045  

Barry Gervin - Toranto, ON, CA

               Twitter: http://www.twitter.com/bervin  
               RD Profile : http://www.theregion.com/profile.aspx?rd=1228

Jonathan Goodyear - Windermere FL

               Twitter: http://www.twitter.com/angrycoder  
               RD Profile : http://www.theregion.com/profile.aspx?rd=1307

Christian Nagel - Guntramsdorf, AUSTRIA,

               Twitter: http://www.twitter.com/ChristianNagel  
               RD Profile : http://www.theregion.com/profile.aspx?rd=1076

 

Yosi Taguri  - Tel Aviv 

               Twitter: http://www.twitter.com/Yosit  
               RD Profile : http://www.theregion.com/profile.aspx?rd=1381

 

posted on Friday, June 13, 2008 4:33:42 AM (GMT Daylight Time, UTC+01:00)  #    Comments [0] Trackback
Friday, July 14, 2006

As part of DotNetDoc's new "Ask the Doc" format, we are starting our journey by taking a page from the Zen Master himself Scott Hanselman. We will be walking through his list of questions posted in his, "What Great .NET Developers Ought To Know" post. We will not only try to answer the questions but give each a "deep dive" so that we not only can answer the question, but so that we UNDERSTAND the answer. We will go one question at a time until we reach the end. I hope you enjoy, and thanks Scott for the thought provoking questions.

.Net Ought To Know #7 : What is a PID? How is it useful when troubleshooting a system?

If you have ever used the task manager (right-click on start bar and select Task Manager) and gone to the Process tab, then you have seen the processes that are running on your system. The default set-up of the task manager does not show the PID or Process ID. To add this, go to View/Add Columns on the menu and check the box next to PID(Process Identifer).

The PID is an integer that is assigned to each process in your operating system.It is usefull when you need to diagnose problems with your application since it allows you to uniquely identify each process.

 

In the .Net framework, you can access this information by using the System.Diagnostics namespace.

   

    1 Imports System

    2 Imports System.Diagnostics

    3 

    4 Friend Class Class1

    5     <STAThread()> _

    6     Shared Sub Main(ByVal args As String())

    7         Dim strRemark As String

    8         ' remarks to insert into the console output

    9 

   10         Console.WriteLine("all processes of the system")

   11         Console.WriteLine()

   12 

   13         Dim myProcesses As Process() = Process.GetProcesses()

   14         ' all processes into the array

   15 

   16         For Each p As Process In myProcesses

   17             If p.Id = Process.GetCurrentProcess().Id Then

   18                 ' the process id is unique in the system

   19                 strRemark = " < = my application"

   20             Else

   21                 strRemark = ""

   22             End If

   23 

   24             If p.ProcessName = _

   25             Process.GetCurrentProcess().ProcessName _

   26             AndAlso p.Id <> Process.GetCurrentProcess().Id Then

   27                 ' an additional instance of the same

   28                 ' application has the same name,

   29                 ' but an other process id

   30 

   31                 strRemark = " <= another instance of app"

   32             End If

   33 

   34             Console.WriteLine _

   35             ("{0}  {1}  {2}", p.ProcessName, p.Id, strRemark)

   36         Next p

   37 

   38         Console.WriteLine()

   39         Console.ReadLine()

   40         ' this ReadLine command is to hold the application open

   41     End Sub

   42 End Class

 

Happy Programming.

Doc

posted on Friday, July 14, 2006 1:45:21 PM (GMT Daylight Time, UTC+01:00)  #    Comments [1] Trackback
Wednesday, July 12, 2006

As part of DotNetDoc's new "Ask the Doc" format, we are starting our journey by taking a page from the Zen Master himself Scott Hanselman. We will be walking through his list of questions posted in his, "What Great .NET Developers Ought To Know" post. We will not only try to answer the questions but give each a "deep dive" so that we not only can answer the question, but so that we UNDERSTAND the answer. We will go one question at a time until we reach the end. I hope you enjoy, and thanks Scott for the thought provoking questions.

.Net Ought To Know #6 : Corillian's product is a "Component Container." Name at least 3 component containers that ship now with the Windows Server Family?

The answer to the question is not that tough so I thought we would go a little deeper and talk about Components, Controls, and Containers Oh My!! (Sorry I couldn't resist). In the .Net Framework, simply put, a component is a class that implements the System.ComponentModel.IComponent interface or derives from a class that does. A component is something that can be reused. C# is considered a component-oriented language. Re-use is everything in component-oriented design. Putting together pre-tested parts is faster and cheaper then coding it yourself. So to summertime, a component is any class that directly or indirectly implements the IComponent Interface. A component can be added to the toolbox and dragged and dropped onto a form.

A control on the other hand is a component that provides a UI. To do this you need to implement System.Windows.Forms.Control OR System.Web.UI.Control. So a control is basically a component that has visual properties.

This finally leads us to the answer to this question. You need a place to hold your components and controls. This is done in a Container. A Container is a class that implements the System.ComponentModel.IContainer interface (directly or indirectly). Since this container holds your controls, it is easy to access the controls dynamically.

    9 Private Class ControlWalker

   10     Private mContainer As Object

   11     Public Sub New(ByVal Container As Object)

   12         Dim cControl As Control

   13         If Container.haschildren Then

   14             For Each cControl In Container.controls

   15                 'add this control to the controls collection

   16                 m_controls.Add(cControl)

   17                 If cControl.HasChildren Then

   18                     'This control has children, create another

   19                     'ControlWalk go visit each of them

   20                     Dim cWalker As New ControlWalker(cControl)

   21                 End If

   22             Next cControl

   23         End If

   24     End Sub

   25 End Class

So you tell me now, this should be easy. What are 3 containers in then Windows Server Family?

Happy Programming.

Doc

posted on Wednesday, July 12, 2006 12:17:16 PM (GMT Daylight Time, UTC+01:00)  #    Comments [3] Trackback
Thursday, July 06, 2006

As part of DotNetDoc's new "Ask the Doc" format, we are starting our journey by taking a page from the Zen Master himself Scott Hanselman. We will be walking through his list of questions posted in his, "What Great .NET Developers Ought To Know" post. We will not only try to answer the questions but give each a "deep dive" so that we not only can answer the question, but so that we UNDERSTAND the answer. We will go one question at a time until we reach the end. I hope you enjoy, and thanks Scott for the thought provoking questions.

.Net Ought To Know #4 : What is the difference between an EXE and a DLL?

The main difference between an EXE and a DLL is the fact that an EXE contains instructions for the processor and has an entry point for the execution to start. In this .Net Drag and Drop world where most of the underlying tasks are taken care of for us, this is sometimes hard to see. In the classes I teach, in order to focus on the the code and not the bells and whistles, I often assign Console Applications for homework. The entry point for a console application is the Sub Main() procedure. You can see this by going to project properties and looking at the Startup object. Since a console application will create an EXE, it needs to know where to start execution.

 

 

If we change the Application type from Console Application to Class Library, you will notice that the Startup object type now says <none>. This is because a DLL cannot be executed(or loaded)directly, it can only be called by another process.

 


It is also interesting to note how this question relates to .Net Ought To Know #3. An EXE runs in its own address space(out-of-process) while a DLL will run in the address space of its host (in-process). If you wanted to dive deeper into this, you could load up both a DLL and EXE in ILDasm.exe and look for the <entrypoint> marker in the EXE file.

Happy Programing.

Doc

posted on Thursday, July 06, 2006 4:44:18 AM (GMT Daylight Time, UTC+01:00)  #    Comments [1] Trackback
Monday, July 03, 2006

As part of DotNetDoc's new "Ask the Doc" format, we are starting our journey by taking a page from the Zen Master himself Scott Hanselman. We will be walking through his list of questions posted in his, "What Great .NET Developers Ought To Know" post. We will not only try to answer the questions but give each a "deep dive" so that we not only can answer the question, but so that we UNDERSTAND the answer. We will go one question at a time until we reach the end. I hope you enjoy, and thanks Scott for the thought provoking questions.

.Net Ought To Know #3 : What is the maximum amount of memory any single process on Windows can address? Is this different than the maximum virtual memory for the system? How would this affect a system design?

Well since most people are still not using a 64 bit operating system, we are going to keep this discussion limited to a 32bit OS. In the NT Flavor of operating systems, 4GB of memory is available to each process but it is split 50/50 with with the operating system.

So each process has 2GB of memory available for its private use. The other 2GB is used by the operating system, devices, graphics cards, etc.. Keep in mind, the 4GB/2GB size is regardless of how much RAM you have installed.

This would affect system design if you are creating an application that uses very large data structures or applications like mail servers, database management servers etc.. To address the need for more memory space, you can use a /3GB switch which then splits the memory usage from 50/50 to 75/25. Allowing your application to use 3GB of the 4GB available.

Happy Programming

Doc

posted on Tuesday, July 04, 2006 1:17:21 AM (GMT Daylight Time, UTC+01:00)  #    Comments [0] Trackback
Saturday, May 20, 2006

p>As part of DotNetDoc's new "Ask the Doc" format, we are starting our journey by taking a page from the Zen Master himself Scott Hanselman. We will be walking through his list of questions posted in his, "What Great .NET Developers Ought To Know" post. We will not only try to answer the questions but give each a "deep dive" so that we not only can answer the question, but so that we UNDERSTAND the answer. We will go one question at a time until we reach the end. I hope you enjoy, and thanks Scott for the thought provoking questions.

.Net Ought To Know #2 : What is a Windows Service and how does it's lifecycle differ from a standard EXE?

Whenever a user logs onto a NT flavor machine, they are given a desktop to work with. Any of the programs that are run, any of the processes that are started belong to this user. Only one user can be logged on at one time.

If you go to windows explorer and navigate to the Documents and Settings folder you will see all of the different users that have used your machine. Only one of these profile (or desktops) can be active at a time. Different rights can be given to each of the users of the system which can control what they can see and what they can do. Standard EXE's are run by users that are logged onto the system. This is accomplished by either navigating to the shortcut associated with the application (either on the programs menu or the desktop) and clicking on the icon. This will run that application using the rights of the currently logged on user. You can also run as another user by right-clicking on the icon and selecting run-as from the context menu, but you get the picture. Standard EXE's are associated with the current user and their desktop.

Windows Services, on the other hand, are processes that can exist and run without a user/desktop. The windows service runs in its own windows session without the need for any particular user to be logged onto the system. They are initiated when the system boots up. As opposed to a Standard EXE, they have no user interface as they run in the background of your computer.

 

 

 

 

 

 

 

 

You can view all the Windows Services running on your computer by using the Computer Management Console. This can be opened by clicking on the services icon found in your control panel. Many of the applications found in here will be familiar to you like SQL Server (MSSQLSERVER for 2000 or SQL Server * for 2005) or Task Scheduler, but others will not be, like Network DDE or Logical Disk Manager.

 

 

 

 

 

 

 

To discover what a Windows Service is used for, just click on the service and the description will be shown on the left of the screen. Finally, you can also decide when a service will start. You have three choices :

  • Automatic -
    When this setting is selected, the Windows Service will start when the system is started.
  • Manual -
    When this setting is selected, the Windows Service will not be started until the "Start the Service" link is selected. This can also be automated by an application but the main difference is that it is not started during the system boot up.
  • Disabled -
    Well, this of course means that the service is disabled.

So the lifecycle of a Windows Service is different from the lifecycle of a Standard EXE because a Windows Service is associated with the system (but can use any account) and begins its "life" when the system boots up. A Standard EXE needs a signed on user(manually or programmaticlly)to initiate its instantiation.

Happy Programming.

DotNetDoc

 

posted on Saturday, May 20, 2006 11:26:16 PM (GMT Daylight Time, UTC+01:00)  #    Comments [0] Trackback
Thursday, May 18, 2006

As part of DotNetDoc's new "Ask the Doc" format, we are starting our journey by taking a page from the Zen Master himself Scott Hanselman. We will be walking through his list of questions posted in his, "What Great .NET Developers Ought To Know" post. We will not only try to answer the questions but give each a "deep dive" so that we not only can answer the question, but so that we UNDERSTAND the answer. We will go one question at a time until we reach the end. I hope you enjoy, and thanks Scott for the thought provoking questions.

.Net Ought To Know #1 : Describe the difference between a Thread and a Process?

The power of Windows comes from its ability to multi-task. Multitasking allows the running of multiple processes in memory simultaneously. So first we need to define a "process". In its simplest definition, a process is an instance of a program running in a computer. The Process is the object that owns all of the resources of the application it belongs to.

It is important to remember that a process is NOT an application. In the same way that a class is not an object, an application is not a process. An application is the static code and static data, the process is the code "in-action". Each process runs in its own section of virtual memory. This allows the operating system to keep them separate so that a problem with one process does not bring down the whole system. Inside its own section of Virtual Memory, everything needed to run the application, from the code to the stack and heap, to it's static variables , can be found.

A thread on the other hand is an independent path of execution WITHIN a process (thread of execution) . Threads are very similar to processes in that they both represent a sequence of instructions needing to be executed. When you begin a process a "Start Up" thread is created that will execute your Main() method and continue running until the method has ended. A process can create multiple threads (Multi-Threaded Application) WIHTIN the process to perform tasks. A process can be thought of as a collection of threads. It can have several threads running concurrently giving the allusion that your application is running faster. Remember, your operating systems can only do one thing at a time (Excluding machines with multiple processors of course). So having multiple threads allows your program to continue without having to wait for a particular task to complete.

 

Happy Programming

DotNetDoc

posted on Thursday, May 18, 2006 1:03:35 PM (GMT Daylight Time, UTC+01:00)  #    Comments [1] Trackback
Wednesday, May 17, 2006

The DotNetDoc forums have been hit repeatedly by spammers in the past few months and I just can't seem to get them to go away so I shut them down (That will stop them - lol). But this made me take a look at how this site is set up. I started with many different tabs which contained article downloads, DNN Modifications and modules, course outlines, presentation materials etc....

Well I have decided to change the format of DotNetDoc a bit. I have decided to turn DotNetDoc into a question and answer blog. Throw me anything you want. (Anything .Net that is) and the Doc will answer it here. I will be adding a comment box to the site that will allow you to post your questions to me and will post the answers here.

Now, I thought to myself (self), what if no questions come?  Hmmm that wouldn't be good for the format would it.  Of course not, so I have decided to kick it off by working on something that I have been thinking about for a long time.

Scott Hanselman on his blog Computer Zen (http://www.hanselman.com/blog/) had a post called "What Great .Net Developers Ought To Know (http://tinyurl.com/7mf3r) where he posed a set of questions every .Net Developer should be able to answer.

I have decided to start with these items and answer them one by one. Then as other questions come in, I will work them in between these post. If no questions come in from my 5200 subscribers then oh well. It will be a great exercise.

So Stay tuned, I may be changing the site  a bit too. Nothing too drastic. I will still be using dasBlog for the site, I just might do away with the outer shell. (We will see)

That's it for now.
See you soon with Question #1 : Describe the difference between a Thread and a Process?

Happy Programming.

DotNetDoc

posted on Wednesday, May 17, 2006 11:45:49 AM (GMT Daylight Time, UTC+01:00)  #    Comments [2] Trackback