<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6576794</id><updated>2011-07-07T17:35:32.699-03:00</updated><title type='text'>Made of .NET Components</title><subtitle type='html'>Neodynamic, Microsoft .NET Development, and so on...</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://neodynamic.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6576794/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://neodynamic.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Gabriel Fogante</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.neodynamic.com/blog/images/neophoto.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>16</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6576794.post-114269421524372092</id><published>2006-03-18T11:57:00.000-03:00</published><updated>2006-03-18T12:03:35.256-03:00</updated><title type='text'>MessageBox.Show(“It’s a boy!!!”);</title><content type='html'>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.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/4679/353/1600/santiago_1.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/4679/353/320/santiago_1.jpg" alt="" border="0" /&gt;&lt;/a&gt;And this one showing us that it’s a boy :-))&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/4679/353/1600/santiago_2.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/4679/353/320/santiago_2.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6576794-114269421524372092?l=neodynamic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neodynamic.blogspot.com/feeds/114269421524372092/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6576794&amp;postID=114269421524372092' title='37 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6576794/posts/default/114269421524372092'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6576794/posts/default/114269421524372092'/><link rel='alternate' type='text/html' href='http://neodynamic.blogspot.com/2006/03/messageboxshowits-boy.html' title='MessageBox.Show(“It’s a boy!!!”);'/><author><name>Gabriel Fogante</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.neodynamic.com/blog/images/neophoto.jpg'/></author><thr:total>37</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6576794.post-114190463069945637</id><published>2006-03-09T08:39:00.000-03:00</published><updated>2006-03-09T08:43:50.710-03:00</updated><title type='text'>Barcode Professional for Reporting Services Reviewed</title><content type='html'>Read the review made by &lt;a href="http://spaces.msn.com/dineshasanka/"&gt;Dinesh Asanka&lt;/a&gt; and published on SQLServerCentral.com &amp;amp; SQL-Server-Performance.com websites&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.sqlservercentral.com/columnists/dasanka/doesbarcodinggiveheadachestoyouneodynamicisasoluti.asp"&gt;Does Barcoding Give Headaches to You? Neodynamic is a Solution&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.sql-server-performance.com/software_spotlights/da_barcode_professional.asp"&gt;Creating Bar Codes with SQL Server Reporting Services Is Easy with Barcode Professional&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6576794-114190463069945637?l=neodynamic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neodynamic.blogspot.com/feeds/114190463069945637/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6576794&amp;postID=114190463069945637' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6576794/posts/default/114190463069945637'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6576794/posts/default/114190463069945637'/><link rel='alternate' type='text/html' href='http://neodynamic.blogspot.com/2006/03/barcode-professional-for-reporting.html' title='Barcode Professional for Reporting Services Reviewed'/><author><name>Gabriel Fogante</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.neodynamic.com/blog/images/neophoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6576794.post-113771407734714014</id><published>2006-01-19T20:36:00.000-03:00</published><updated>2006-01-19T20:41:17.360-03:00</updated><title type='text'>MessageBox.Show(“Hello World!”);</title><content type='html'>Yes!!! God bless us with a baby!&lt;br /&gt;&lt;br /&gt;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!&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/4679/353/1600/Mari-Gaby-Baby.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/4679/353/320/Mari-Gaby-Baby.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6576794-113771407734714014?l=neodynamic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neodynamic.blogspot.com/feeds/113771407734714014/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6576794&amp;postID=113771407734714014' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6576794/posts/default/113771407734714014'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6576794/posts/default/113771407734714014'/><link rel='alternate' type='text/html' href='http://neodynamic.blogspot.com/2006/01/messageboxshowhello-world.html' title='MessageBox.Show(“Hello World!”);'/><author><name>Gabriel Fogante</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.neodynamic.com/blog/images/neophoto.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6576794.post-113684825004979366</id><published>2006-01-09T20:07:00.000-03:00</published><updated>2006-01-09T20:10:50.060-03:00</updated><title type='text'>When maximum is not a maximum (Windows Form’s Scrollbar control)</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Problem&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;You want to allow to your users to set a range value in a visual manner.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Possible solutions in Windows Forms&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Use a TrackBar control or a ScrollBar (HScrollBar or VScrollBar) control.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;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.&lt;br /&gt;So, to mimic that UI, we dragged &amp; 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.&lt;br /&gt;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?&lt;br /&gt;Well the answer is in the Maximum property help on MSDN that states:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Note&lt;/span&gt;&lt;span style="font-style: italic;"&gt;   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.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Ah… that makes sense :-S&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;Maximum (100) – LargeChange (10) + 1 = 91&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;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:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;Maximum desired (100) + LargeChange (10) – 1 = 109&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;That’s it. No comments.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6576794-113684825004979366?l=neodynamic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neodynamic.blogspot.com/feeds/113684825004979366/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6576794&amp;postID=113684825004979366' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6576794/posts/default/113684825004979366'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6576794/posts/default/113684825004979366'/><link rel='alternate' type='text/html' href='http://neodynamic.blogspot.com/2006/01/when-maximum-is-not-maximum-windows.html' title='When maximum is not a maximum (Windows Form’s Scrollbar control)'/><author><name>Gabriel Fogante</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.neodynamic.com/blog/images/neophoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6576794.post-113642519283947967</id><published>2006-01-04T22:22:00.000-03:00</published><updated>2006-01-06T15:23:51.603-03:00</updated><title type='text'>UITypeEditor for Font Name properties</title><content type='html'>We’re making big changes and enhancements (I guess) in our current development of the next release of our &lt;a href="http://www.neodynamic.com/Products/IDWebC/ImageDrawWebControl.aspx?tabid=24&amp;prodid=4"&gt;ImageDraw control for ASP.NET&lt;/a&gt;&lt;br /&gt;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.&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;If you try &lt;a href="http://www.neodynamic.com/ND/ProductsPage.aspx?tabid=10"&gt;our products&lt;/a&gt;, 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.&lt;br /&gt;&lt;br /&gt;When you drag &amp;amp; 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.&lt;br /&gt;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.&lt;br /&gt;So, add the following attribute to our Name property and... that’s it?&lt;br /&gt;         &lt;p class="MsoNormal"&gt;&lt;span style="font-family: courier new;font-size:85%;" &gt;[&lt;br /&gt;Editor(&lt;span style="color:blue;"&gt;typeof&lt;/span&gt;(FontNameEditor), &lt;span style="color:blue;"&gt;typeof&lt;/span&gt;(UITypeEditor))&lt;br /&gt;]&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: courier new; color: rgb(51, 51, 255);font-size:85%;" &gt;public&lt;/span&gt;&lt;span style=""&gt;&lt;span style="color: rgb(51, 51, 255);font-size:85%;" &gt;&lt;span style="font-family: courier new;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: courier new;font-size:85%;color:blue;"  &gt;string&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt; Name&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: courier new;font-size:85%;" &gt;      &lt;/span&gt;&lt;span style="font-family: courier new;font-size:85%;color:blue;"  &gt;    get&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;{}&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: courier new;font-size:85%;" &gt;      &lt;/span&gt;&lt;span style="font-family: courier new;font-size:85%;color:blue;"  &gt;    set&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;{}&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;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.&lt;br&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/4679/353/1600/fontlist1.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/4679/353/320/fontlist1.jpg" alt="" border="0" /&gt;&lt;/a&gt;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.    &lt;br /&gt;Change your Name property to look like the following and you’ll get your Font Names list finally.                    &lt;p class="MsoNormal"&gt;&lt;span style="font-family: courier new;font-size:85%;" &gt;[&lt;br /&gt;TypeConverter(&lt;span style="color:blue;"&gt;typeof&lt;/span&gt;(System.Drawing.FontConverter.FontNameConverter)),&lt;br /&gt;Editor(&lt;span style="color:blue;"&gt;typeof&lt;/span&gt;(FontNameEditor), &lt;span style="color:blue;"&gt;typeof&lt;/span&gt;(UITypeEditor))&lt;br /&gt;]&lt;/span&gt;&lt;span style="font-family: courier new;font-size:85%;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: courier new; color: rgb(51, 51, 255);font-size:85%;" &gt;public&lt;/span&gt;&lt;span style=""&gt;&lt;span style="font-family: courier new; color: rgb(51, 51, 255);font-size:85%;" &gt; &lt;/span&gt;&lt;span style="font-family: courier new;font-size:85%;color:blue;"  &gt;string&lt;/span&gt;&lt;span style="font-family: courier new;font-size:85%;" &gt; Name&lt;br /&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: courier new;font-size:85%;" &gt;      &lt;/span&gt;&lt;span style="font-family: courier new;font-size:85%;color:blue;"  &gt;    get&lt;/span&gt;&lt;span style="font-family: courier new;font-size:85%;" &gt;{}&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: courier new;font-size:85%;" &gt;      &lt;/span&gt;&lt;span style="font-family: courier new;font-size:85%;color:blue;"  &gt;    set&lt;/span&gt;&lt;span style="font-family: courier new;font-size:85%;" &gt;{}&lt;br /&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/4679/353/1600/fontlist2.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/4679/353/320/fontlist2.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6576794-113642519283947967?l=neodynamic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neodynamic.blogspot.com/feeds/113642519283947967/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6576794&amp;postID=113642519283947967' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6576794/posts/default/113642519283947967'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6576794/posts/default/113642519283947967'/><link rel='alternate' type='text/html' href='http://neodynamic.blogspot.com/2006/01/uitypeeditor-for-font-name-properties.html' title='UITypeEditor for Font Name properties'/><author><name>Gabriel Fogante</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.neodynamic.com/blog/images/neophoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6576794.post-113218157749865042</id><published>2005-11-16T19:49:00.000-03:00</published><updated>2005-11-16T19:52:57.500-03:00</updated><title type='text'>Visual Studio 2005 ReportViewer controls website</title><content type='html'>Rajeev Karunakaran runs a great website about Visual Studio 2005 ReportViewer controls. Get articles, FAQ, demo samples, and so on entering at &lt;a href="http://www.gotreportviewer.com/"&gt;http://www.gotreportviewer.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;We’ve downloaded and extended the Invoice Maker sample from there in order it can support barcode images using our &lt;a href="http://www.neodynamic.com/Products/BCRS/BarcodeRS.aspx?tabid=78&amp;prodid=7"&gt;Barcode Professional for Reporting Services&lt;/a&gt; component. We provide a &lt;a href="http://www.neodynamic.com/ND/FaqsTipsTricks.aspx?tabid=66&amp;amp;prodid=7&amp;amp;sid=32"&gt;Step By Step Guide&lt;/a&gt; about the conversion as well.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6576794-113218157749865042?l=neodynamic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neodynamic.blogspot.com/feeds/113218157749865042/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6576794&amp;postID=113218157749865042' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6576794/posts/default/113218157749865042'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6576794/posts/default/113218157749865042'/><link rel='alternate' type='text/html' href='http://neodynamic.blogspot.com/2005/11/visual-studio-2005-reportviewer.html' title='Visual Studio 2005 ReportViewer controls website'/><author><name>Gabriel Fogante</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.neodynamic.com/blog/images/neophoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6576794.post-113218080157583198</id><published>2005-11-16T19:34:00.000-03:00</published><updated>2005-11-16T19:40:01.586-03:00</updated><title type='text'>SSRS Group Program Manager points out Neodynamic</title><content type='html'>&lt;a href="http://blogs.msdn.com/bwelcker/default.aspx"&gt;Brian Welcker&lt;/a&gt; is Group Program Manager for &lt;a href="http://www.microsoft.com/sql/technologies/reporting/default.mspx"&gt;SQL Server Reporting Services&lt;/a&gt; and in &lt;a href="http://blogs.msdn.com/bwelcker/archive/2005/11/15/493183.aspx"&gt;this post&lt;/a&gt;, he points out &lt;a href="http://www.neodynamic.com"&gt;Neodynamic&lt;/a&gt; as one of the first Reporting Services partners that have launched updated products for Reporting Services 2005; &lt;a href="http://www.neodynamic.com/Products/BCRS/BarcodeRS.aspx?tabid=78&amp;prodid=7"&gt;Barcode Professional for Reporting Services&lt;/a&gt; in our case.&lt;br&gt;We at Neodynamic want to thank him for his comments and words.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6576794-113218080157583198?l=neodynamic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neodynamic.blogspot.com/feeds/113218080157583198/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6576794&amp;postID=113218080157583198' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6576794/posts/default/113218080157583198'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6576794/posts/default/113218080157583198'/><link rel='alternate' type='text/html' href='http://neodynamic.blogspot.com/2005/11/ssrs-group-program-manager-points-out.html' title='SSRS Group Program Manager points out Neodynamic'/><author><name>Gabriel Fogante</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.neodynamic.com/blog/images/neophoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6576794.post-113175420939185566</id><published>2005-11-11T20:59:00.000-03:00</published><updated>2005-11-13T19:20:28.240-03:00</updated><title type='text'>Neodynamic: new logo, website, and products versions</title><content type='html'>At last! After hard working for a couple of months, &lt;a href="http://www.neodynamic.com/"&gt;Neodynamic&lt;/a&gt; was re-launched.&lt;br /&gt;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.&lt;br /&gt;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:&lt;br /&gt;&lt;br /&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center;" alt="" src="http://photos1.blogger.com/blogger/4679/353/320/neodynamic_email.png" border="0" /&gt; &lt;img style="margin: 0px auto 10px; display: block; text-align: center;" alt="" src="http://photos1.blogger.com/blogger/4679/353/320/neodynamicemail.0.gif" border="0" /&gt;&lt;br /&gt;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…&lt;br /&gt;We too updated all our products to .NET 2.0, &lt;a href="http://msdn.microsoft.com/vstudio/"&gt;Visual Studio 2005&lt;/a&gt;, and &lt;a href="http://msdn.microsoft.com/sql/"&gt;SQL Server 2005&lt;/a&gt; &lt;a href="http://www.microsoft.com/sql/technologies/reporting/default.mspx"&gt;Reporting Services&lt;/a&gt;. &lt;a href="http://www.neodynamic.com/Products/BCRS/BarcodeRS.aspx?tabid=78&amp;amp;prodid=7"&gt;Barcode Professional for Reporting Services 2005&lt;/a&gt; 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.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6576794-113175420939185566?l=neodynamic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neodynamic.blogspot.com/feeds/113175420939185566/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6576794&amp;postID=113175420939185566' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6576794/posts/default/113175420939185566'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6576794/posts/default/113175420939185566'/><link rel='alternate' type='text/html' href='http://neodynamic.blogspot.com/2005/11/neodynamic-new-logo-website-and.html' title='Neodynamic: new logo, website, and products versions'/><author><name>Gabriel Fogante</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.neodynamic.com/blog/images/neophoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6576794.post-113063395007974838</id><published>2005-10-29T21:59:00.000-03:00</published><updated>2005-10-30T08:58:06.896-03:00</updated><title type='text'>Neodynamic is ready for Visual Studio 2005, SQL Server 2005, and .NET 2.0! Are you?</title><content type='html'>Last Thursday &lt;a href="http://www.microsoft.com/"&gt;Microsoft&lt;/a&gt; gave to us (MSDN Subscribers) &lt;a href="http://lab.msdn.microsoft.com/vs2005/get/"&gt;Visual Studio 2005 and SQL Server 2005 RTM versions&lt;/a&gt;. Today, we’ve finished downloading them!&lt;br /&gt;&lt;br /&gt;We’ve been working hard for the last months to update &lt;a href="http://www.neodynamic.com/ND/ProductsPage.aspx?tabid=10"&gt;our products&lt;/a&gt; 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).&lt;br /&gt;But the hardest work was put on our new &lt;a href="http://www.neodynamic.com/Products/BCRS/BarcodeRS.aspx?tabid=78&amp;amp;prodid=7"&gt;Barcode Professional control for Microsoft SQL Server 2005 Reporting Services&lt;/a&gt; (SSRS 2005).&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;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 &lt;a href="http://forums.microsoft.com/msdn/ShowPost.aspx?PostID=110766"&gt;several&lt;/a&gt; &lt;a href="http://blogs.msdn.com/bwelcker/archive/2005/07/13/438301.aspx"&gt;times&lt;/a&gt;, 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.&lt;br /&gt;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 :-)&lt;br /&gt;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.&lt;br /&gt;We’re going to install these new babies and see how they finally look. It seems that the next week will be very long …&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6576794-113063395007974838?l=neodynamic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neodynamic.blogspot.com/feeds/113063395007974838/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6576794&amp;postID=113063395007974838' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6576794/posts/default/113063395007974838'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6576794/posts/default/113063395007974838'/><link rel='alternate' type='text/html' href='http://neodynamic.blogspot.com/2005/10/neodynamic-is-ready-for-visual-studio.html' title='Neodynamic is ready for Visual Studio 2005, SQL Server 2005, and .NET 2.0! Are you?'/><author><name>Gabriel Fogante</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.neodynamic.com/blog/images/neophoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6576794.post-112674026862850412</id><published>2005-09-14T20:04:00.000-03:00</published><updated>2005-10-01T10:32:08.916-03:00</updated><title type='text'>Barcode Data Binding in .NET Windows Forms 2.0</title><content type='html'>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, &lt;strong&gt;DefaultBindingPropertyAttribute&lt;/strong&gt;, &lt;strong&gt;ComplexBindingPropertiesAttribute&lt;/strong&gt;, or &lt;strong&gt;LookupBindingPropertiesAttribute&lt;/strong&gt;. In our case we just use the first one.&lt;br /&gt;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:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;"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."&lt;br /&gt;&lt;/em&gt;&lt;br /&gt;Realize that your control must be in the Toolbox before you can bind it with any data type.&lt;br /&gt;Here, a screenshot of our &lt;a href="http://www.neodynamic.com/Products/BCWinC/BarcodeWinControl.aspx?tabid=23&amp;amp;prodid=3"&gt;Barcode Professional&lt;/a&gt; 2.5 for Windows Forms 2.0 under beta at this moment.&lt;br /&gt;&lt;br /&gt;&lt;img style="CURSOR: hand" alt="" src="http://photos1.blogger.com/blogger/4679/353/1600/barcode_data_binding1.gif" border="0" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6576794-112674026862850412?l=neodynamic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neodynamic.blogspot.com/feeds/112674026862850412/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6576794&amp;postID=112674026862850412' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6576794/posts/default/112674026862850412'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6576794/posts/default/112674026862850412'/><link rel='alternate' type='text/html' href='http://neodynamic.blogspot.com/2005/09/barcode-data-binding-in-net-windows.html' title='Barcode Data Binding in .NET Windows Forms 2.0'/><author><name>Gabriel Fogante</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.neodynamic.com/blog/images/neophoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6576794.post-112665276301329267</id><published>2005-09-13T20:01:00.000-03:00</published><updated>2006-03-16T20:06:54.666-03:00</updated><title type='text'>ASP.NET Atlas Project available</title><content type='html'>Today, the &lt;a href="http://www.asp.net"&gt;ASP.NET Team&lt;/a&gt; officially launched its &lt;a href="http://atlas.asp.net"&gt;Atlas project&lt;/a&gt;. I saw the PDC05 Keynote where &lt;a href="http://weblogs.asp.net/scottgu/"&gt;Scott&lt;/a&gt; showed a sample app using an Atlas server control that renders maps using Virtual Earth… very impressed.&lt;br /&gt;Atlas is available to download and we can try it using VS.NET 2005 Beta 2. I’ll download it and see what we can do with it.&lt;br /&gt;PS: &lt;a href="http://weblogs.asp.net/scottgu/archive/2005/09/13/425062.aspx"&gt;Scott has wrote great stuff about Atlas&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6576794-112665276301329267?l=neodynamic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neodynamic.blogspot.com/feeds/112665276301329267/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6576794&amp;postID=112665276301329267' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6576794/posts/default/112665276301329267'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6576794/posts/default/112665276301329267'/><link rel='alternate' type='text/html' href='http://neodynamic.blogspot.com/2005/09/aspnet-atlas-project-available.html' title='ASP.NET Atlas Project available'/><author><name>Gabriel Fogante</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.neodynamic.com/blog/images/neophoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6576794.post-112621010871206090</id><published>2005-09-08T17:03:00.000-03:00</published><updated>2005-09-08T17:08:28.716-03:00</updated><title type='text'>Concatenating Byte Arrays</title><content type='html'>I needed to concatenate two byte arrays. My first thought was to create a destination buffer and then loop through each sources adding their elements to the destination one – something dirty ah!&lt;br /&gt;Fortunately, before to write any line of code I found this beautiful class called &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfSystemBufferClassTopic.asp"&gt;Buffer&lt;/a&gt; in the System namespace.&lt;br /&gt;So, how you can concatenate two byte arrays using it? Very simple:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;&lt;span style="color:#3333ff;"&gt;byte&lt;/span&gt;[] b1 = &lt;span style="color:#3333ff;"&gt;new byte&lt;/span&gt;[]{1,2,3};&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;byte&lt;/span&gt;[] b2 = &lt;span style="color:#3333ff;"&gt;new byte&lt;/span&gt;[]{4,5,6,7,8,9};&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;byte&lt;/span&gt;[] c = &lt;span style="color:#3333ff;"&gt;new byte&lt;/span&gt;[b1.Length + b2.Length];&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#339999;"&gt;Buffer&lt;/span&gt;.BlockCopy(b1, 0, c, 0, b1.Length);&lt;br /&gt;&lt;span style="color:#339999;"&gt;Buffer&lt;/span&gt;.BlockCopy(b2, 0, c, b1.Length, b2.Length);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt; That’s it. Thanks &lt;a href="http://blogs.msdn.com/bclteam/search.aspx?q=blockcopy&amp;amp;p=1"&gt;BCL folks&lt;/a&gt;!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6576794-112621010871206090?l=neodynamic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neodynamic.blogspot.com/feeds/112621010871206090/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6576794&amp;postID=112621010871206090' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6576794/posts/default/112621010871206090'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6576794/posts/default/112621010871206090'/><link rel='alternate' type='text/html' href='http://neodynamic.blogspot.com/2005/09/concatenating-byte-arrays.html' title='Concatenating Byte Arrays'/><author><name>Gabriel Fogante</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.neodynamic.com/blog/images/neophoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6576794.post-112552338794745283</id><published>2005-08-31T18:02:00.000-03:00</published><updated>2005-08-31T18:23:07.953-03:00</updated><title type='text'>Barcode in Reporting Services 2005 Local Mode</title><content type='html'>Some of our &lt;a href="http://www.neodynamic.com/Products/BCRS/BarcodeRS.aspx?tabid=78&amp;prodid=7"&gt;Barcode Professional for Reporting Services&lt;/a&gt; customers has asked about how to use it in &lt;a href="http://www.microsoft.com/technet/prodtechnol/sql/2005/2005ssrs.mspx#EDAA"&gt;Reporting Services 2005 Local Mode&lt;/a&gt;. Local mode in SSRS 2005 is a great feature which allows you to use all SSRS 2005 power and flexibility with your Windows as well as ASP.NET applications without a SQL Server 2005 license (it’ll be required if you use reports in Server Mode). In local mode you use the new ReportViewer controls included in VS.NET 2005 (Standard or grater) to render RDLC files. RDL (Report Definition Language) files are XML-based and they describe all about the report they represent. RDLC are the same RDL files but they only can be used in Local Mode.&lt;br /&gt;In local mode you must tell to the ReportViewer control what RDLC file you want to show and the data source for it.&lt;br /&gt;SSRS is so extensible that it allows you to develop .NET assemblies and then use them into your reports. Our barcode component is in fact a .NET assembly that renders barcode images.&lt;br /&gt;If you use SSRS in Server mode, all .NET custom assemblies that use your report have to be registered in the report server policy configuration file (&lt;strong&gt;rssrvpolicy.config&lt;/strong&gt;) but what happen if you use them in Local Mode?&lt;br /&gt;Well, it’s a good question… In a first approximation to find a solution to this issue I reach a page that in theory explain how to “&lt;a href="http://whidbey.msdn.microsoft.com/library/default.asp?url=/library/en-us/rs_vsrpts/html/2cbcf92f-73ae-4070-80d6-b4ee0bf62dfa.asp"&gt;Configure the ReportViewer Control for Local Processing&lt;/a&gt;” but it does not mention anything related to custom assemblies. If you follow all the topics related to this last one you won’t find anything as well. At this point I was very tired but suddenly I saw the light :-)&lt;br /&gt;I realize some links on the top of every page and after a pair of clicks I reach the &lt;a href="http://whidbey.msdn.microsoft.com/library/default.asp?url=/library/en-us/rs_vsrptsmref/html/T_Microsoft_Reporting_WinForms_LocalReport.asp"&gt;LocalReport&lt;/a&gt; class. This class exposes a method called &lt;a href="http://whidbey.msdn.microsoft.com/library/default.asp?url=/library/en-us/rs_vsrptsmref/html/M_Microsoft_Reporting_WinForms_LocalReport_AddTrustedCodeModuleInCurrentAppDomain_1_16219e3a.asp"&gt;AddTrustedCodeModuleInCurrentAppDomain&lt;/a&gt; that solves the issue.&lt;br /&gt;&lt;br /&gt;So if you want to use our Barcode assembly (or any custom .NET assembly) with SSRS 2005 in Local Mode in a Windows Forms app, you’ll have to call that method in the Load event of the form that holds the ReportViewer control. Sample code:&lt;br /&gt;&lt;br /&gt;C#&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color:#3333ff;"&gt;this&lt;/span&gt;.reportViewer1.LocalReport.AddTrustedCodeModuleInCurrentAppDomain("&lt;strong&gt;Neodynamic.ReportingServices.Barcode,&lt;br /&gt;Version=1.0.5000.0,Culture=neutral, PublicKeyToken=null&lt;/strong&gt;");&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;VB.NET&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color:#3333ff;"&gt;Me&lt;/span&gt;.ReportViewer1.LocalReport.AddTrustedCodeModuleInCurrentAppDomain("&lt;strong&gt;Neodynamic.ReportingServices.Barcode,&lt;br /&gt;Version=1.0.5000.0,Culture=neutral, PublicKeyToken=null&lt;/strong&gt;")&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Currently, we’re updating our Barcode component for RS to be fully compliance with the new SSRS 2005 Report Items infrastructure but meanwhile you can use our current version in SSRS 2000 or 2005, too.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6576794-112552338794745283?l=neodynamic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neodynamic.blogspot.com/feeds/112552338794745283/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6576794&amp;postID=112552338794745283' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6576794/posts/default/112552338794745283'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6576794/posts/default/112552338794745283'/><link rel='alternate' type='text/html' href='http://neodynamic.blogspot.com/2005/08/barcode-in-reporting-services-2005.html' title='Barcode in Reporting Services 2005 Local Mode'/><author><name>Gabriel Fogante</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.neodynamic.com/blog/images/neophoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6576794.post-112517226537130380</id><published>2005-08-27T16:45:00.000-03:00</published><updated>2005-08-27T16:54:36.336-03:00</updated><title type='text'>Visual Fox Basic</title><content type='html'>According &lt;a href="http://www.microsoft-watch.com/article2/0,1995,1853012,00.asp?kc=MWRSS02129TX1K0000535"&gt;this&lt;/a&gt;, the next of the next version of &lt;a href="http://msdn.microsoft.com/vstudio/productinfo/roadmap.aspx#orcas"&gt;Visual Basic (v9.0 codename Orcas)&lt;/a&gt; will gain some of the data-handling capabilities that long have been part of &lt;a href="http://msdn.microsoft.com/vfoxpro/"&gt;FoxPro&lt;/a&gt;. This will be without doubt a great enhancement for VB.NET and with all those changes that has affected VB for years and years, I guess that it could be a good moment to rename it as Visual Fox Basic :o) OTOH, will it be the end of Fox? We’ll see…&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6576794-112517226537130380?l=neodynamic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neodynamic.blogspot.com/feeds/112517226537130380/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6576794&amp;postID=112517226537130380' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6576794/posts/default/112517226537130380'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6576794/posts/default/112517226537130380'/><link rel='alternate' type='text/html' href='http://neodynamic.blogspot.com/2005/08/visual-fox-basic.html' title='Visual Fox Basic'/><author><name>Gabriel Fogante</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.neodynamic.com/blog/images/neophoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6576794.post-112509865076353459</id><published>2005-08-26T20:11:00.000-03:00</published><updated>2005-08-26T20:34:35.193-03:00</updated><title type='text'>SQL Server Reporting Services Barcode solutions</title><content type='html'>A few months ago we launched our &lt;a href="http://www.neodynamic.com/Products/BCRS/BarcodeRS.aspx?tabid=78&amp;prodid=7"&gt;Barcode Professional .NET component&lt;/a&gt; for &lt;a href="http://www.microsoft.com/sql/reporting/default.mspx"&gt;MS SQL Reporting Services (a.k.a. SSRS)&lt;/a&gt;. Until that time, the only way to deliver barcode images into Reporting Services was using barcode fonts. IMHO Barcode Fonts are a good solution for some client-side scenarios like Windows Forms applications, but not for server-side applications like SSRS. For this reason we began our research over SSRS to see in what way we could integrate our barcode component into it.&lt;br /&gt;SSRS is mainly based-on .NET Framework and our first thought was to develop a custom control for it but apparently SSRS 2000 was not designed to integrate third party controls/components. Thankfully “this limitation” has changed for the next version i.e. SSRS 2005.&lt;br /&gt;But that does not demoralize our dev team and after a few days they found a way to deliver barcode images with SSRS and in that moment Barcode Professional for Reporting Services was born.&lt;br /&gt;&lt;a href="http://www.neodynamic.com/Products/BCRS/BarcodeRS.aspx?tabid=78&amp;prodid=7"&gt;&lt;img style="MARGIN: 10px 10px 10px 0px; CURSOR: hand" alt="Barcode Professional .NET component for MS SQL Reporting Services" src="http://www.neodynamic.com/Support/FAQs/24/figure6Small.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;This barcode .NET-based solution allows to our customers to include barcode images into their reports with a lot of features such us Linear and 2D Barcode Symbologies, Image Rotation, Text color, export file format (PDF, Excel, etc) supported, and so on; all features that Barcode Font solution does not offer. We’ll continue supporting Reporting Services because it’s a great report solution and our dev team is already updating our Barcode component for the next version SSRS 2005. Finally, I’d like to share excellent news (at least for us). All our hard work was rewarded with our inclusion in the &lt;a href="http://www.microsoft.com/sql/reporting/partners/component.asp"&gt;official Microsoft Reporting Services Partners Component website&lt;/a&gt;!!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6576794-112509865076353459?l=neodynamic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neodynamic.blogspot.com/feeds/112509865076353459/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6576794&amp;postID=112509865076353459' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6576794/posts/default/112509865076353459'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6576794/posts/default/112509865076353459'/><link rel='alternate' type='text/html' href='http://neodynamic.blogspot.com/2005/08/sql-server-reporting-services-barcode.html' title='SQL Server Reporting Services Barcode solutions'/><author><name>Gabriel Fogante</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.neodynamic.com/blog/images/neophoto.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6576794.post-107850660297307880</id><published>2004-03-05T14:10:00.000-03:00</published><updated>2005-08-20T14:51:42.463-03:00</updated><title type='text'>Workaround for GetSavedLicenseKey in ASP.NET</title><content type='html'>When a customer deploys an ASP.NET Web Application that uses any of &lt;a href="http://www.neodynamic.com/ND/ProductsPage.aspx?tabid=10"&gt;our ASP.NET WebControls&lt;/a&gt;, the license information must be embedded in one of application’s assembly manifests. In our LicenseProvider class, we use the &lt;strong&gt;SetSavedLicenseKey()&lt;/strong&gt; method of the &lt;strong&gt;LicenseContext&lt;/strong&gt; object to save the license information, and then we use the &lt;strong&gt;GetSavedLicenseKey() &lt;/strong&gt;to get it. But in ASP.NET the &lt;strong&gt;GetSavedLicenseKey DOES NOT work&lt;/strong&gt;. The problem was written in the ASP.NET newsgroups by someone called Mark some time ago:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;“I've checked out the GotDotNet article before and it doesn't clarify the&lt;br /&gt;issue of using context.GetSavedLicenseKey in a licesnsed control consumed in&lt;br /&gt;an ASP.NET application.&lt;br /&gt;&lt;br /&gt;After further research here is my take in the situation :&lt;br /&gt;&lt;br /&gt;When compiling an ASP.NET application which contains a licensed control,&lt;br /&gt;VS.NET automatically calls LC.EXE to embed the "licenses" resource in the&lt;br /&gt;ASP.NET project dll for all licensed controls as listed in license.licx. (&lt;br /&gt;This is done for all licensed controls whose providers call&lt;br /&gt;context.SetSavedLicenceKey in LicenseProvider::GetLicense in the constructor&lt;br /&gt;of the control ). I have check the MANIFEST of the compiled ASP.NET assembly&lt;br /&gt;and their is a "licenses" resource that appears to be there.&lt;br /&gt;&lt;br /&gt;The problem is that at runtime, context.GetSavedLicenseKey called from the&lt;br /&gt;control doesn't work. I assume this is because the Framework can't locate&lt;br /&gt;the ASP.NET assembly because it has been shadow-copied somewhere...???&lt;br /&gt;&lt;br /&gt;Thus any control developer who needs to license a control which may be&lt;br /&gt;consumed in an ASP.NET web application must implement an alternative licence&lt;br /&gt;storage location ( eg LIC file ) is GetSavedLicenseKEy doesn't work.&lt;br /&gt;&lt;br /&gt;For me this is a licensing show-stopper, because I have to distribute&lt;br /&gt;licence files with my web control, and these are a sinch to copy/pirate.&lt;br /&gt;&lt;br /&gt;If anyone can show how to succesfully use context.GetSavedLicenseKey from a&lt;br /&gt;control within an ASP.NET web application please do! Else could someone from&lt;br /&gt;Microsoft please confirm that it is impossible to do so!&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;&lt;br /&gt;Mark”&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Well, dear Mark, we were in the same situation :-(&lt;br /&gt;&lt;br /&gt;So after a research over the .NET framework classes we could write a workaround for this issue. We cannot put all the LicenseProvider class we use, of course. The part of the source code we're going to put and share here, is the necessary methods to get the license information embedded in the ASP.NET application’s manifests at runtime. So in your own LicenseProvider class, call the following private method called (of course) &lt;strong&gt;GetSavedLicenseKey()&lt;/strong&gt;. Please add the necessary namespaces references and then write the following:&lt;br /&gt;&lt;br /&gt;private string GetSavedLicenseKey(Type type)&lt;br /&gt;{&lt;br /&gt;Hashtable licenseKeys = null;&lt;br /&gt;Assembly[] assemblies = AppDomain.CurrentDomain.GetAssemblies();&lt;br /&gt;string s = "";&lt;br /&gt;&lt;br /&gt;for (int i = 0; i &lt; assemblies.Length; i++)&lt;br /&gt;{&lt;br /&gt;Assembly assembly = assemblies[i];&lt;br /&gt;if (!(assembly is AssemblyBuilder))&lt;br /&gt;{&lt;br /&gt;s = GetLocalPath(assembly.EscapedCodeBase);&lt;br /&gt;s = new FileInfo(s).Name;&lt;br /&gt;&lt;br /&gt;Stream stream = assembly.GetManifestResourceStream(s + ".licenses");&lt;br /&gt;if (stream == null)&lt;br /&gt;{&lt;br /&gt;stream = GetManifestResourceStream(assembly, (s + ".licenses"));&lt;br /&gt;}&lt;br /&gt;if (stream != null)&lt;br /&gt;{&lt;br /&gt;licenseKeys = Deserialize(stream, s.ToUpper(CultureInfo.InvariantCulture));&lt;br /&gt;stream.Close();&lt;br /&gt;stream = null;&lt;br /&gt;break;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;if (licenseKeys == null)&lt;br /&gt;{&lt;br /&gt;return null;&lt;br /&gt;}&lt;br /&gt;else&lt;br /&gt;{&lt;br /&gt;return (string)licenseKeys[type.AssemblyQualifiedName];&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;private string GetLocalPath(string fileName)&lt;br /&gt;{&lt;br /&gt;Uri uri = new Uri(fileName, true);&lt;br /&gt;return (uri.LocalPath + uri.Fragment);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;private Stream GetManifestResourceStream(Assembly satellite, string name)&lt;br /&gt;{&lt;br /&gt;CompareInfo compareInfo = CultureInfo.InvariantCulture.CompareInfo;&lt;br /&gt;string[] resources = satellite.GetManifestResourceNames();&lt;br /&gt;for (int i = 0; i &lt; resources.Length; i++)&lt;br /&gt;{&lt;br /&gt;string s = resources[i];&lt;br /&gt;if (compareInfo.Compare(s, name, CompareOptions.IgnoreCase) == 0)&lt;br /&gt;{&lt;br /&gt;name = s;&lt;br /&gt;break;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;return satellite.GetManifestResourceStream(name);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;private Hashtable Deserialize(Stream stream, string embeddedLicenseName)&lt;br /&gt;{&lt;br /&gt;object obj;&lt;br /&gt;IFormatter iFormatter = new BinaryFormatter();&lt;br /&gt;new SecurityPermission(SecurityPermissionFlag.SerializationFormatter).PermitOnly();&lt;br /&gt;new SecurityPermission(SecurityPermissionFlag.SerializationFormatter).Assert();&lt;br /&gt;try&lt;br /&gt;{&lt;br /&gt;obj = iFormatter.Deserialize(stream);&lt;br /&gt;}&lt;br /&gt;finally&lt;br /&gt;{&lt;br /&gt;CodeAccessPermission.RevertAssert();&lt;br /&gt;CodeAccessPermission.RevertPermitOnly();&lt;br /&gt;}&lt;br /&gt;if (obj is object[])&lt;br /&gt;{&lt;br /&gt;object[] objs = (object[])obj;&lt;br /&gt;if (objs[0] is string &amp;&amp;amp; (string)objs[0] == embeddedLicenseName)&lt;br /&gt;{&lt;br /&gt;return (Hashtable)objs[1];&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;return null;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;That's it. The code we wrote above is not black magic. If you examine (via Reflector) the .NET framework classes, you will see why the LicenseContext.GetSavedLicenseKey() method fails (doesn't work) in ASP.NET applications. Enjoy the code.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6576794-107850660297307880?l=neodynamic.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://neodynamic.blogspot.com/feeds/107850660297307880/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6576794&amp;postID=107850660297307880' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6576794/posts/default/107850660297307880'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6576794/posts/default/107850660297307880'/><link rel='alternate' type='text/html' href='http://neodynamic.blogspot.com/2004/03/workaround-for-getsavedlicensekey-in.html' title='Workaround for GetSavedLicenseKey in ASP.NET'/><author><name>Gabriel Fogante</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://www.neodynamic.com/blog/images/neophoto.jpg'/></author><thr:total>0</thr:total></entry></feed>
