Saturday, March 18, 2006

MessageBox.Show(“It’s a boy!!!”);

Last Wednesday we had our second ultrasound revealing us that it’s a boy!!! His name will be Santiago and below is the picture of him.
And this one showing us that it’s a boy :-))

Thursday, March 09, 2006

Barcode Professional for Reporting Services Reviewed

Read the review made by Dinesh Asanka and published on SQLServerCentral.com & SQL-Server-Performance.com websites

Does Barcoding Give Headaches to You? Neodynamic is a Solution

Creating Bar Codes with SQL Server Reporting Services Is Easy with Barcode Professional

Thursday, January 19, 2006

MessageBox.Show(“Hello World!”);

Yes!!! God bless us with a baby!

Below is the 10 week ultrasound which was done last Tuesday. Doctor wrote “This photo was taken by my mom” while my wife operated the ultrasound equipment. It was very beautiful to see our baby moving itself like a cycle :-)) We’re very happy!

Monday, January 09, 2006

When maximum is not a maximum (Windows Form’s Scrollbar control)

Problem
  • You want to allow to your users to set a range value in a visual manner.

Possible solutions in Windows Forms
  • Use a TrackBar control or a ScrollBar (HScrollBar or VScrollBar) control.

We wanted to mimic the UI of MS Word when you set the Fill transparency value for an AutoShape. In the Fill Effects dialog box you’ll find that most transparency controls are HScrollBar that allows you to set it in a range from 0 to 100.
So, to mimic that UI, we dragged & dropped an HScrollBar control onto a Form. We set their properties Minimum to 0 (zero) and Maximum to 100. All seems to be easy and straightforward until you run your form.
At runtime, if you scroll to the minimum you’ll get the minimum value i.e. 0 (zero). But if you scroll to the maximum you’ll get 91. How is it possible?
Well the answer is in the Maximum property help on MSDN that states:

Note The value of a scroll bar cannot reach its maximum value through user interaction at run time. The maximum value that can be reached is equal to the Maximum property value minus the LargeChange property value plus one. The maximum value can only be reached programmatically.

Ah… that makes sense :-S

Maximum (100) – LargeChange (10) + 1 = 91

Ok. If that is the logic behind ScrollBar controls, then in order you can reach a Maximum value at runtime scrolling it we’ll need to set the Maximum property to:

Maximum desired (100) + LargeChange (10) – 1 = 109

That’s it. No comments.

Wednesday, January 04, 2006

UITypeEditor for Font Name properties

We’re making big changes and enhancements (I guess) in our current development of the next release of our ImageDraw control for ASP.NET
One of the big changes we made is that now, ImageDraw will support layers and a lot of imaging actions out of the box. We’ve included an action that will allow you to create a Polaroid version of a specified image. Polaroid will support text that you can include onto it a.k.a. captions.
So, we designed a Polaroid class that has a Font property in order you can specified the font style you want to use for Polaroid’s captions.

In a first place, we though in using the FontInfo class of ASP.NET, the same used by WebControl class for its Font property. But we discard it when we did realize that it has not an appropriated TypeConverter needed for State Management and because it is a Sealed Class i.e. we can’t inherit from it and provide a custom TypeConverter.

In second place, we went for System.Drawing.Font class. It seemed to be the correct class because it has all properties we need to draw text using GDI+ and it has a built-in TypeConverter! Wrong choice I’d say. Its TypeConverter seems not to be prepared to ASP.NET serialization, I mean, when a Font object is serialized on a WebForm, some read-only properties of Font class, such as Bold, are serialized on the WebForm making the Designer begins throwing exception about you can’t set read-only properties.

Without success on built-in Font classes, we decided to design one and we called it Font, of course. We made it very simple with properties like Name, Size, Bold, Italic, Underline, and Strikeout.
If you try our products, you’ll see that we always make great efforts on design-time experience. When we can imitate a design-time feature of built-in ASP.NET controls, we’ll do it. And Font Name property is one of those cases.

When you drag & drop an ASP.NET control like Label, you’ll find that it has an “expandable” Font property. This Font property allows you to set a Font Name by selecting one of its installed Fonts list.
As I stated before, we went for that beautiful Font List to include it into our Font Name property. You can easily found it using tools like Reflector going to System.Web.UI.WebControls.FontInfo class and selecting Name property. You’ll realize that the font names list is UITypeEditor class in the System.Drawing.Design.dll assembly called System.Drawing.Design.FontNameEditor.
So, add the following attribute to our Name property and... that’s it?

[
Editor(typeof(FontNameEditor), typeof(UITypeEditor))
]

public string Name
{
get{}
set{}
}


Well, that’s not it! Compile your project and you’ll get the following i.e. a Name property with no button picker to drop down the font list.

To solve the issue, we must add another attribute that is involved with Font list editor. It’s a built-in TypeConverter for Font Names called System.Drawing.FontConverter.FontNameConverter. Basically, this class gets all installed Fonts and together the FontNameEditor class, both make the trick.
Change your Name property to look like the following and you’ll get your Font Names list finally.

[
TypeConverter(typeof(System.Drawing.FontConverter.FontNameConverter)),
Editor(typeof(FontNameEditor), typeof(UITypeEditor))
]

public string Name
{
get{}
set{}
}

Wednesday, November 16, 2005

Visual Studio 2005 ReportViewer controls website

Rajeev Karunakaran runs a great website about Visual Studio 2005 ReportViewer controls. Get articles, FAQ, demo samples, and so on entering at http://www.gotreportviewer.com/

We’ve downloaded and extended the Invoice Maker sample from there in order it can support barcode images using our Barcode Professional for Reporting Services component. We provide a Step By Step Guide about the conversion as well.

SSRS Group Program Manager points out Neodynamic

Brian Welcker is Group Program Manager for SQL Server Reporting Services and in this post, he points out Neodynamic as one of the first Reporting Services partners that have launched updated products for Reporting Services 2005; Barcode Professional for Reporting Services in our case.
We at Neodynamic want to thank him for his comments and words.

Friday, November 11, 2005

Neodynamic: new logo, website, and products versions

At last! After hard working for a couple of months, Neodynamic was re-launched.
This was our bigger change after one year and a half. A new logo and a new corporate website were designed and now they’re online.
I personally like the new logo. We maintained blue color (I like very much blue) and I think that it’s very cool. Compare our old logo with the new one:


The new website suffered dramatic changes from esthetical to new sections like search capability, customer list, and home page and product pages re-design. So far, I have to admit I very satisfied with our job. But it’s only the beginning…
We too updated all our products to .NET 2.0, Visual Studio 2005, and SQL Server 2005 Reporting Services. Barcode Professional for Reporting Services 2005 was the release more complicated to get out due to that we developed it without any official documentation… but it was funny and an amazing experience. More about it in next future posts. Well, I’m very tired at this moment, so it’s time to go home. Have a nice weekend.

Saturday, October 29, 2005

Neodynamic is ready for Visual Studio 2005, SQL Server 2005, and .NET 2.0! Are you?

Last Thursday Microsoft gave to us (MSDN Subscribers) Visual Studio 2005 and SQL Server 2005 RTM versions. Today, we’ve finished downloading them!

We’ve been working hard for the last months to update our products for this new .NET version, making some enhancements on our code-base and adding some new cool features like Smart Actions or Smart Tags (give you the name you want).
But the hardest work was put on our new Barcode Professional control for Microsoft SQL Server 2005 Reporting Services (SSRS 2005).

This new release of SSRS opens its doors to allow us, ISVs, so we can provide new controls and components in order the platform is the best in your niche market.
Develop controls for .NET 2.0 was relativity “simple” due to we had all necessary docs to accomplish that. But, it was not the case with SSRS. SSRS Team told several times, that docs for developing controls for SSRS a.k.a. Custom Report Items, will not be available till the official launch of SSRS 2005, i.e. November 7.
As an ISV we cannot admit to wait the official launch to begin developing/updating our products for so cool product and technology. So we began the challenge to develop our Barcode Professional for SSRS 2005 without help docs. We did it and I think that the result is more than excellent – we hope that our customers think the same after use it :-)
So far, the experience was great, fantastic... (all good adjectives) and in next posts I’ll write about it. But the hard work has not finished yet, in fact, it just begins now.
We’re going to install these new babies and see how they finally look. It seems that the next week will be very long …

Wednesday, September 14, 2005

Barcode Data Binding in .NET Windows Forms 2.0

One of the enhancements in .NET 2.0 is the new Windows Forms Data Binding capabilities. You can create with few steps and time data-enabled forms using Visual Studio .NET 2005. Select a Data Source (provided by a Web Service, a Database, or a Business Entity) and then specify for each data source’s “field” a Windows Forms Control that will represent it onto the form (Data Source pane on figure). You can enable your custom control for data-binding adding a simple class-level Metadata Attribute. There’re tree different attributes to use depending on your needs, DefaultBindingPropertyAttribute, ComplexBindingPropertiesAttribute, or LookupBindingPropertiesAttribute. In our case we just use the first one.
If you do not do that, your control will not be allowed to participate in the data-binding process as is stated in .NET 2.0 help:

"You can modify the list of controls associated with each data type by selecting Customize from the list attached to any item in the Data Sources window. The list of Associated controls is determined by the available controls in the Toolbox that implement one of the following databinding attributes: DefaultBindingPropertyAttribute, ComplexBindingPropertiesAttribute, or LookupBindingPropertiesAttribute."

Realize that your control must be in the Toolbox before you can bind it with any data type.
Here, a screenshot of our Barcode Professional 2.5 for Windows Forms 2.0 under beta at this moment.