this blog contains information for .net and sql stuffs. You can find various tips and tricks to overcome problem you may be facing in ...
Wednesday, May 26, 2010
Graphics with .net (Part -3)
To add text to any image, following things are required.
Object of Graphics
Object of Font
If require Object of Brush
Call Graphics.DrawString method and pass font and brush object.
Yes its very simple to add text to our image. Now let’s check out how to create Font object and how to write in image
Create object of Font
Font f = new Font(“Arial”,10,FontStyle.Bold);
Apart from above constructor Font class has more than 12 constructor, we can create FontFamily object and pass it to Font Constructor.
FontFamily ffm = new FontFamily(“Arial”);
Font f = new Font(ffm,10);
If we need to read type of font, we can do with help of FontConverter class. But their errors prone, as we don’t get any error at compile time. We don’t come to know any error till it throws Runtime exception.
FontConverter converter = new FontConverter();
Font f = (Font)converter.ConvertFromString("Arial, 12pt");
Write text To Image
Once font is created, we need to create object of brush to fill text with that color, or we can use Brushes if we don’t wish to create object of brush.
Graphics g = this.CreateGraphics();
Font f = new Font("Arial", 40, FontStyle.Bold);
g.DrawString("My Test String!", f, Brushes.Blue, 10, 10);
Above code will draw “My Test String!” in form with Blue color and bold style with Arial font family.
With help of StringFormat we can format string like its alignment, FormatFlags, LineAlignment, Traimming etc.
Alternatively, to add text to image saved in disk, load it by using any of the bitmap or image class then follow step to draw string on it.
After that call save method of image or bitmap class, that will store new modified image in disk.
Tuesday, May 25, 2010
Graphics with .net (Part -2)
Image and Bitmap class provides ability to modify existing image file or create new image file.
Image is an abstract class, but we can have instance of it by Image.FromFile or Image.FromStream methods. FromFile accept any image file, FromStream accepts stream of Image file. We can use whatsoever we have at hand when we are going to play with Image.
Bitmap class is inherited by Image, For still image we can use Bitmap class, For animated image we can use System.Drawing.Imaging.MetaFile. Bitmap class is widely used for image editing and creation compared to MetaFile.
Display Image in background.
To display image in the back ground of form or any control we have one or more techniques, we can choose any of them.
Take a picturebox control on the form, or create instance of picture box and set BackGroundImage property.
Image backImage = Image.FromFile(“@myImage.jpg”);
myPictureBox.BackGroundImage = backImage;
Here we have placed picturebox control and set its name myPictureBox. myImage.jpg is file available in our current directory else we can specify whole path of my image file.
In another method, we can set background image using Graphics.DrawImage method.
Bitmap backImage = new Bitmap(“@myImage.jpg”);
Graphics g = this.CreateGraphics();
g.DrawImage(backImage,1,1,this.Width,this.Height);
DrawImage methods has 30 around overloaded method, we can use any of them.
Create and Save Image
To create or edit any image first create object of Bitmap class, edit it using Graphics then with Bitmap.Save method, save it back to disk.
Bitmap bm = new Bitmap(600, 600);
Graphics g = Graphics.FromImage(bm);
Brush b = new LinearGradientBrush(new Point(1, 1), new Point(600, 600), Color.White, Color.Blue);
Point[] points = new Point[] {new Point(10, 10), new Point(77, 500), new Point(590, 100), new Point(250, 590), new Point(300, 410)};
g.FillPolygon(b, points);
bm.Save("bm.jpg", ImageFormat.Jpeg);
In above code we have created a polygon and filled it with Blue-while Gradient Brush. Once it done, we save it to disk by bm.jpg to our current directory.
To edit an image, just use another over load of Bitmap constructor that takes file as parameter.
Display Icon
Icon are transparent bitmap image with specific size and used to convey status to windows system. .Net have provided built in Icons with 40-40 size for Questions, Exclamation, Information etc.
To add Icon to Form or control just call Graphics.DrawIcon method, it will do rest for us.
Graphics g = this.CreateGraphics();
g.DrawIcon(SystemIcons.Information, 40, 40);
Above code will draw 40*40 Information Icon on our form.
Monday, May 24, 2010
Graphics with .net (Part -1)
Thanks to System.Drawing namespace, we can play with output design. Graphics includes drawing various shapes circle, rectangle, triangle, ellipse etc, also fill shapes with different colors, modify image as per need. Font can be changed, various charts can be constructed.
System.Drawing includes classes Bitmap, Brush, Brushes, ColorCoverter, ColorTranslator, Font, FontConverter, Graphics, Icon, Image, Pen, Pens, Region, SolidBrush, StringFormat, SystemBrushes, SystemColors and many other classes which can be used at various task of graphics drawing.
Apart from classes System.Drawing namespace have structures CharacterChange, Color, Point, PointF, Rectangle, RectangleF, Size, SizeF. Here F in structure name specifies floating point value support.
Location of control: with help of Point we can set location of control
btnOkay.Location = new Point(50,50) will set btnOkay at (50,50) point.
Set Color, with Color structure
btnOkay.ForeColor = Color.Red;
bnkOkay.BackColor = Color.Blue;
We can specify color from another method FromArgb and passing value of RGB.
btnOkay.ForeColor = Color.FromArgb(10,200,200);
bnkOkay.BackColor = Color. FromArgb(5,20,50);
Draw on surface of form or control.
To draw shapes first we need to create object of Graphics, create object of pen, and now call various method of Graphics to draw shape with pen created earlier.
Graphics g = this.CreateGraphics();
Pen p = new Pen(Color.Blue, 5);
g.DrawLine(p,10,10,100,100);
Above code will draw a blue line with 5 pixel thick from point (10,10) to (100,100)
Pen’s style can be set with DashStyle enumeration.
p.DashStyle = DashStyle.Dot;
p.DashStyle = DashStyle.Dash;
p.DashStyle = DashStyle.DashDot;
p.DashStyle = DashStyle.Solid;
By default, pen draw with solid style. Pen.DashOffset and Pen.DashPattern used to customize dash pattern.
To control endcaps, create arrows or modify pen start cap and end cap, LineCap enumerations is helpful.
p.StartCap = LineCap.ArrowAnchor;
p.EndCap = LineCap.DiamondAnchor;
p.StartCap = LineCap.Flat;
p.EndCap = LineCap.Round;
Methods of Graphics which start with Draw needs to fill it with different brushes, Graphics also support fill methods, which does not create shape but also fill shape.
To fill shape, Brush is used. Brush class is abstract class so any of their child class’s instances can be initiated.
System.Drawing.Drawing2D.HatchBrush: A rectangular brush with a hatchstyle, a foreground color, and a background color
System.Drawing.Drawing2D.LinearGradientBrush: Encapsulates a brush with a lin-
ear gradient that provides a visually appealing, professional-looking fill
System.Drawing.Drawing2D.PathGradientBrush: Provides similar functionality to
LinearGradientBrush; however, you can define a complex fill pattern that fades
between multiple points
System.Drawing.SolidBrush: A brush of a single color
System.Drawing.TextureBrush: A brush made from an image that can be tiled across a shape, like a wallpaper design
Monday, May 17, 2010
Configuration in .net
Friday, May 14, 2010
Show Tray Icon for your application In .net.
Thursday, May 13, 2010
Windows Service (Part-2)
In last post we learn how to build windows service in Visual studio, but work does not complete here. Once windows service is developed we need to install it.
We didn’t talk about how to give name to myservice or what property should be set when building it.
Firstly in windows service, we have ServiceBase if you look on designer view, check properties windows of it. Set ServiceName property, this will be our service name.
As we discussed we should write code in OnStart and OnStop method, we can even override other methods OnPause and OnContinue. Pause service is continued to serve users who are already consuming it, but don’t serve to new request. OnContinue is called when service is resumed from stop. To implement these methods set CanPauseAndContinue to true.
To override OnShutdown method, set CanShutdown to true. This method is called at the time of shutdown of computer.
To override OnPowerEvent method, set CanHandlePowerEvent to true. This method is invoked at the time of suspended mode of computer.
As we know to consume windows service, firstly we need to install it. To install it .net has provided ServiceInstaller and ServiceProcessInstaller classes.
ServiceInstaller class is used to define service description, display name, service name and startup type.
ServiceProcessInstaller class is used to define service account information.
àBy right clicking on designer of ServiceBase we can add ProjectInstaller.
àSet StartType property of ProjectInstaller from below list
Automatic: The service starts automatically after the computer starts, whether or not a user logs in.
Manual: A user must start the service manually. This is the default.
Disabled: The service does not start automatically, and users cannot start the service without first changing the start-up type.
àSet Description and DisplayName properties.
àSet ServiceDependedOn property. It may be possible service which we create is depends on some of serviced provided by operating system. We can add one more service in this list.
àSet Security Context of your service by specifying your Account property from one of the following value.
LocalService: Runs in the context of an account that acts as a nonprivileged user on the local computer, and presents anonymous credentials to any remote server. Use LocalService to minimize security risks.
NetworkService: Enables the service to authenticate to another computer on the network. This authentication is not required for anonymous connections, such as most connections to a Web server.
LocalSystem: The service runs with almost unlimited privileges and presents the computer’s credentials to any remote server. Using this account type presents a severe security risk; any vulnerabilities in your application could be exploited to take complete control of the user’s computer.
User: Causes the system to prompt for a valid user name and password when the service is installed. You can set values for both the Username and Password properties of your ServiceProcessInstaller instance. This is the default.
àSet your service project startup object as we have set as startup form in windows application.
Now last task is to install service on computer, we can do that either manually or by creating installer with .msi file.
To manually install service run InstallUtil “service.exe”. here “service.exe” is name of service assembly. InstallUtil is available in ...windows\Microsoft.Net\Framework\Versoion\Folder…
For installer, we can add installer project to our service solution as per other project give Primary output in installer. In primary output give output of windows service.
Once service is installed, we can start , stop from services. Services can be accessed from administrative tools in control panel or by right clicking on mycomputer and manage of it. One of manage list have node services, that is showing all available list of windows service.
By right clicking on service we can pause, run, restart, and stop service. We can even set start up type form there.
Wednesday, May 12, 2010
Windows Service (Part-1)
Windows service are application that don’t have any visual element or visual effect, they run in back ground. Windows service run under particular user session as long as we have configured it.
Windows operating system it self provides many services we are familiar with IIS, telnet,
In such type of situation we can build up windows service application and host on our computer where we want to have automatic run and stop functionality.
Before we start to talk about how to develop windows service, we check how is it different from other application types?
We can’t run or debug windows service from visual studio development environment so there is no use of F5 and F11 in case of windows service project.
We have to create installer to run windows service, unlike other project we don’t have dll or exe files and can use easily. We need to install windows service by installing to a particular computer.
The main method of your windows service project must have run command, which loads service to service control manager on appropriate computer.
Unlike other application, you would not able to show message box when application crash, or something happened, it will run on background, you will not get any information once service start as after it fully controlled by operating system.
Windows services run on their own security context, we should take care of user account and security problem.
Creation of Windows service project
àChoose windows service template for windows project type.
àwrite your code on OnStart and OnStop procedures, we can override other methods too.
Once windows service started, we can’t have any control on it, we don’t get any thing, in that situation we can create timer object and start timer once windows service start. After that we can write event for timer time elapsed. In such a way we do useful work by using windows services.