[C#]
Form1.cs
using System;
using System.Drawing;
using System.Windows.Forms;
using ESRI.ArcGIS.Carto;
using ESRI.ArcGIS.Display;
using ESRI.ArcGIS.Geometry;
using ESRI.ArcGIS.Server;
using SimpleSOEInterfaces_CSharp;
namespace SimpleSOE_WinFormApp
{
    public partial class Form1 : Form
    {
        private string serverName = "localhost";
        private string serviceName = "Yellowstone";
        private ESRI.ArcGIS.ADF.Connection.AGS.AGSServerConnection gisconnection;
        private IServerContext serverContext;
        public Form1()
        {
            InitializeComponent();
        }
        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                gisconnection =
                    new ESRI.ArcGIS.ADF.Connection.AGS.AGSServerConnection();
                gisconnection.Host = serverName;
                gisconnection.Connect();
                IServerObjectManager serverManager = gisconnection.ServerObjectManager;
                serverContext = serverManager.CreateServerContext(serviceName, "MapServer");
                IMapServer mapServer = serverContext.ServerObject as IMapServer;
                IMapServerInfo mapServerInfo = mapServer.GetServerInfo(mapServer.DefaultMapName);
                IMapDescription mapDesc = mapServerInfo.DefaultMapDescription;
                #region Server Object Extension client code
                IServerObjectExtensionManager soexm = (IServerObjectExtensionManager)mapServer;
                IServerObjectExtension soext = soexm.FindExtensionByTypeName("SimpleSOE_CSharp");
                IUtilSOE_CSharp utilsoe = (IUtilSOE_CSharp)soext;
                IPoint pnt = serverContext.CreateObject("esriGeometry.Point") as IPoint;
                pnt.PutCoords(mapDesc.MapArea.Extent.XMin + (mapDesc.MapArea.Extent.Width / 2),
                    mapDesc.MapArea.Extent.YMin + (mapDesc.MapArea.Extent.Height / 2));
                double radius = mapDesc.MapArea.Extent.Width / 8;
                IPolygon circle = (IPolygon)utilsoe.ReturnCircle(ref pnt, ref radius);
                
                IElement element = serverContext.CreateObject("esriCarto.PolygonElement") as IElement;
                element.Geometry = circle;
                IFillShapeElement fillElement = element as IFillShapeElement;                
                ISimpleFillSymbol fillSymbol = 
                    serverContext.CreateObject("esriDisplay.SimpleFillSymbol") as ISimpleFillSymbol;
                
                IRgbColor rgbColor = serverContext.CreateObject("esriDisplay.RgbColor") as IRgbColor;
                rgbColor.Red = 0;
                rgbColor.Green = 255;
                rgbColor.Blue = 255; 
    
                fillSymbol.Color = rgbColor as IColor;
                fillElement.Symbol = fillSymbol;
                if (mapDesc.CustomGraphics == null)
                    mapDesc.CustomGraphics = serverContext.CreateObject("esriCarto.GraphicElements") as IGraphicElements;
                mapDesc.CustomGraphics.Add(element as IGraphicElement);
                #endregion
                IImageDescription imageDesc = serverContext.CreateObject("esriCarto.ImageDescription") as IImageDescription;
                IImageType imgType = serverContext.CreateObject("esriCarto.ImageType") as IImageType;
                imgType.Format = ESRI.ArcGIS.Carto.esriImageFormat.esriImageJPG;
                imgType.ReturnType = ESRI.ArcGIS.Carto.esriImageReturnType.esriImageReturnMimeData;
                IImageDisplay imageDisp =
                    serverContext.CreateObject("esriCarto.ImageDisplay") as IImageDisplay;
                imageDisp.Height = pictureBox1.Height;
                imageDisp.Width = pictureBox1.Width;
                imageDisp.DeviceResolution = 96;
                imageDesc.Type = imgType;
                imageDesc.Display = imageDisp;
                IMapImage mapImageOutput = mapServer.ExportMapImage(mapDesc, imageDesc);
                System.IO.Stream mimeStream = new System.IO.MemoryStream(mapImageOutput.MimeData);
                pictureBox1.Image = Image.FromStream(mimeStream);
                pictureBox1.Refresh();
            }
            catch (Exception ex) { }
            finally
            {
                serverContext.ReleaseContext();
                gisconnection.Dispose();
            }
        }
    }
}
[Visual Basic .NET]
Form1.vb
Imports Microsoft.VisualBasic
Imports System
Imports System.Drawing
Imports System.Windows.Forms
Imports ESRI.ArcGIS.Carto
Imports ESRI.ArcGIS.Display
Imports ESRI.ArcGIS.Geometry
Imports ESRI.ArcGIS.Server
Imports SimpleSOEInterfaces_VBNet
Namespace SimpleSOE_WinFormApp_VBNet
    Partial Public Class Form1
        Inherits Form
        Private serverName As String = "localhost"
        Private serviceName As String = "Yellowstone"
        Private gisconnection As ESRI.ArcGIS.ADF.Connection.AGS.AGSServerConnection
        Private serverContext As IServerContext
        Public Sub New()
            InitializeComponent()
        End Sub
        Private Sub button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles button1.Click
            Try
                gisconnection = New ESRI.ArcGIS.ADF.Connection.AGS.AGSServerConnection()
                gisconnection.Host = serverName
                gisconnection.Connect()
                Dim serverManager As IServerObjectManager = gisconnection.ServerObjectManager
                serverContext = serverManager.CreateServerContext(serviceName, "MapServer")
                Dim mapServer As IMapServer = TryCast(serverContext.ServerObject, IMapServer)
                Dim mapServerInfo As IMapServerInfo = mapServer.GetServerInfo(mapServer.DefaultMapName)
                Dim mapDesc As IMapDescription = mapServerInfo.DefaultMapDescription
                '				#Region "Server Object Extension client code"
                Dim soexm As IServerObjectExtensionManager = CType(mapServer, IServerObjectExtensionManager)
                Dim soext As IServerObjectExtension = soexm.FindExtensionByTypeName("SimpleSOE_VBNet")
                Dim utilsoe As IUtilSOE_VBNet = CType(soext, IUtilSOE_VBNet)
                Dim pnt As IPoint = TryCast(serverContext.CreateObject("esriGeometry.Point"), IPoint)
                pnt.PutCoords(mapDesc.MapArea.Extent.XMin + (mapDesc.MapArea.Extent.Width / 2), mapDesc.MapArea.Extent.YMin + (mapDesc.MapArea.Extent.Height / 2))
                Dim radius As Double = mapDesc.MapArea.Extent.Width / 8
                Dim circle As IPolygon = CType(utilsoe.ReturnCircle(pnt, radius), IPolygon)
                Dim element As IElement = TryCast(serverContext.CreateObject("esriCarto.PolygonElement"), IElement)
                element.Geometry = circle
                Dim fillElement As IFillShapeElement = TryCast(element, IFillShapeElement)
                Dim fillSymbol As ISimpleFillSymbol = TryCast(serverContext.CreateObject("esriDisplay.SimpleFillSymbol"), ISimpleFillSymbol)
                Dim rgbColor As IRgbColor = TryCast(serverContext.CreateObject("esriDisplay.RgbColor"), IRgbColor)
                rgbColor.Red = 0
                rgbColor.Green = 255
                rgbColor.Blue = 255
                fillSymbol.Color = TryCast(rgbColor, IColor)
                fillElement.Symbol = fillSymbol
                If mapDesc.CustomGraphics Is Nothing Then
                    mapDesc.CustomGraphics = TryCast(serverContext.CreateObject("esriCarto.GraphicElements"), IGraphicElements)
                End If
                mapDesc.CustomGraphics.Add(TryCast(element, IGraphicElement))
                '				#End Region
                Dim imageDesc As IImageDescription = TryCast(serverContext.CreateObject("esriCarto.ImageDescription"), IImageDescription)
                Dim imgType As IImageType = TryCast(serverContext.CreateObject("esriCarto.ImageType"), IImageType)
                imgType.Format = ESRI.ArcGIS.Carto.esriImageFormat.esriImageJPG
                imgType.ReturnType = ESRI.ArcGIS.Carto.esriImageReturnType.esriImageReturnMimeData
                Dim imageDisp As IImageDisplay = TryCast(serverContext.CreateObject("esriCarto.ImageDisplay"), IImageDisplay)
                imageDisp.Height = pictureBox1.Height
                imageDisp.Width = pictureBox1.Width
                imageDisp.DeviceResolution = 96
                imageDesc.Type = imgType
                imageDesc.Display = imageDisp
                Dim mapImageOutput As IMapImage = mapServer.ExportMapImage(mapDesc, imageDesc)
                Dim mimeStream As System.IO.Stream = New System.IO.MemoryStream(mapImageOutput.MimeData)
                pictureBox1.Image = Image.FromStream(mimeStream)
                pictureBox1.Refresh()
            Catch ex As Exception
            Finally
                serverContext.ReleaseContext()
                gisconnection.Dispose()
            End Try
        End Sub
    End Class
End Namespace