<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" version="2.0">
  <channel>
    <title>Miky Schreiber's Blog - Programming|.Net</title>
    <link>http://www.miky-schreiber.com/Blog/</link>
    <description>Business Intelligence, Analysis Services, MDX, DataWarehousing and more...</description>
    <language>en-us</language>
    <copyright>Miky Schreiber</copyright>
    <lastBuildDate>Tue, 09 Jun 2009 12:24:55 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 1.9.6264.0</generator>
    <managingEditor>miky@zahav.net.il</managingEditor>
    <webMaster>miky@zahav.net.il</webMaster>
    <item>
      <trackback:ping>http://www.miky-schreiber.com/Blog/Trackback.aspx?guid=963cfc78-6bab-4c2c-a7fd-35186ef8e7e2</trackback:ping>
      <pingback:server>http://www.miky-schreiber.com/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.miky-schreiber.com/Blog/PermaLink,guid,963cfc78-6bab-4c2c-a7fd-35186ef8e7e2.aspx</pingback:target>
      <dc:creator>mikypuff</dc:creator>
      <wfw:comment>http://www.miky-schreiber.com/Blog/CommentView,guid,963cfc78-6bab-4c2c-a7fd-35186ef8e7e2.aspx</wfw:comment>
      <wfw:commentRss>http://www.miky-schreiber.com/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=963cfc78-6bab-4c2c-a7fd-35186ef8e7e2</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
The query string was not meant to pass descriptions and string. The correct use of
it is using codes and numbers. Anyway, my friend did write query strings with hebrew
descriptions and didn't understand why the server side got it scrambled.
</p>
        <p>
This was caused because the client side and the server side were using different
encodings. The correct way of doing this is wrapping the strings using the JavaScript
command encodeURIComponent (in the client side). This will turn the strings into Unicode.
In the server side, using ASP.NET, you can use the Server.UrlDecode method to get
it back.
</p>
        <img width="0" height="0" src="http://www.miky-schreiber.com/Blog/aggbug.ashx?id=963cfc78-6bab-4c2c-a7fd-35186ef8e7e2" />
      </body>
      <title>Passing Strings in the Query String</title>
      <guid isPermaLink="false">http://www.miky-schreiber.com/Blog/PermaLink,guid,963cfc78-6bab-4c2c-a7fd-35186ef8e7e2.aspx</guid>
      <link>http://www.miky-schreiber.com/Blog/PermaLink,guid,963cfc78-6bab-4c2c-a7fd-35186ef8e7e2.aspx</link>
      <pubDate>Tue, 09 Jun 2009 12:24:55 GMT</pubDate>
      <description>&lt;p&gt;
The query string was not meant to pass descriptions and string. The correct use of
it is using codes and numbers. Anyway, my friend did write query strings with hebrew
descriptions and didn't understand why the server side got it scrambled.
&lt;/p&gt;
&lt;p&gt;
This was caused because&amp;nbsp;the client side and the server side were using different
encodings. The correct way of doing this is&amp;nbsp;wrapping the strings using the&amp;nbsp;JavaScript
command encodeURIComponent (in the client side). This will turn the strings into Unicode.
In the server side, using ASP.NET, you can use the Server.UrlDecode method to get
it back.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.miky-schreiber.com/Blog/aggbug.ashx?id=963cfc78-6bab-4c2c-a7fd-35186ef8e7e2" /&gt;</description>
      <comments>http://www.miky-schreiber.com/Blog/CommentView,guid,963cfc78-6bab-4c2c-a7fd-35186ef8e7e2.aspx</comments>
      <category>Programming;Programming/.Net;Programming/Web</category>
    </item>
    <item>
      <trackback:ping>http://www.miky-schreiber.com/Blog/Trackback.aspx?guid=5c9ebeb3-98d5-43ea-9f63-a0e18c3929bd</trackback:ping>
      <pingback:server>http://www.miky-schreiber.com/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.miky-schreiber.com/Blog/PermaLink,guid,5c9ebeb3-98d5-43ea-9f63-a0e18c3929bd.aspx</pingback:target>
      <dc:creator>mikypuff</dc:creator>
      <wfw:comment>http://www.miky-schreiber.com/Blog/CommentView,guid,5c9ebeb3-98d5-43ea-9f63-a0e18c3929bd.aspx</wfw:comment>
      <wfw:commentRss>http://www.miky-schreiber.com/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=5c9ebeb3-98d5-43ea-9f63-a0e18c3929bd</wfw:commentRss>
      <slash:comments>4</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
After announcing the <a href="http://www.miky-schreiber.com/Blog/PermaLink,guid,aca4f6ce-32bb-47ab-a453-5b23c25b3d48.aspx">MdxInjection
program</a> I got several requests for additional details and for the ability to run
it without using Visual Studio. So, here are some important points:
</p>
        <ul>
          <li>
When I published it I had developers in mind because I'm sure than anyone will want
to do his little modification before using it for his own needs. That's why I published
it as a solution and not as executable. 
</li>
          <li>
I written it down using VS2008 but only with the .Net 2 framework. Those of you who
uses VS2005 won't be able to open the solution. 
</li>
          <li>
The program has only one public method - InjectMdx, who takes two arguments: The location
of the CommonMdx file and the location of the xml configuration file. 
</li>
          <li>
The CommonMdx.mdx file contains the common MDX script. The relevant part has
to start with /* Common MDX */ and then the common mdx script. Anything written before
it won't be treated. That gives you the ability to save some data or comments for
yourself in this file. 
</li>
          <li>
Example of the configuration xml file can be found in the Test libary inside the solution.
Basically, it enable you to define in which servers, databases and cubes you want
to inject the common script. Pay attention that you have to write the connection strings
in this file. 
</li>
          <li>
Note that the program will detect cube dimensions with their name changed and will
know how to replace them. That means that if you mention the Time dimension in the
common script and inject it to AdventureWorks cube, the script will replace the string
"Time" with the "ShipmentDate" string, for example.</li>
        </ul>
        <p>
For those of you who want simple execution file, I added a windows console project
in the solution.
</p>
        <a href="http://www.miky-schreiber.com/blog/content/binary/MdxInjectionConsoleApp.zip">Link
to only executable program</a>
        <br />
        <a href="http://www.miky-schreiber.com/blog/content/binary/MdxInjection2.zip">Link
to the solution with the added windows application project</a>
        <br />
        <a href="http://www.miky-schreiber.com/blog/content/binary/MdxInjection.zip">Link
to the solution without the windows application project</a>
        <img width="0" height="0" src="http://www.miky-schreiber.com/Blog/aggbug.ashx?id=5c9ebeb3-98d5-43ea-9f63-a0e18c3929bd" />
      </body>
      <title>The MdxInjection Program - continued</title>
      <guid isPermaLink="false">http://www.miky-schreiber.com/Blog/PermaLink,guid,5c9ebeb3-98d5-43ea-9f63-a0e18c3929bd.aspx</guid>
      <link>http://www.miky-schreiber.com/Blog/PermaLink,guid,5c9ebeb3-98d5-43ea-9f63-a0e18c3929bd.aspx</link>
      <pubDate>Mon, 17 Nov 2008 21:54:17 GMT</pubDate>
      <description>&lt;p&gt;
After announcing the &lt;a href="http://www.miky-schreiber.com/Blog/PermaLink,guid,aca4f6ce-32bb-47ab-a453-5b23c25b3d48.aspx"&gt;MdxInjection
program&lt;/a&gt; I got several requests for additional details and for the ability to run
it without using Visual Studio. So, here are some important points:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
When I published it I had developers in mind because I'm sure than anyone will want
to do his little modification before using it for his own needs. That's why I published
it as a solution and not as executable. 
&lt;li&gt;
I written it down using VS2008 but only with the .Net 2 framework. Those of you who
uses VS2005 won't be able to open the solution. 
&lt;li&gt;
The program has only one public method - InjectMdx, who takes two arguments: The&amp;nbsp;location
of the CommonMdx file and the location of the xml configuration file. 
&lt;li&gt;
The CommonMdx.mdx file contains the common MDX script. The relevant part&amp;nbsp;has
to start with /* Common MDX */ and then the common mdx script. Anything written before
it won't be treated. That gives you the ability to save some data or comments for
yourself in this file. 
&lt;li&gt;
Example of the configuration xml file can be found in the Test libary inside the solution.
Basically, it enable you to define in which servers, databases and cubes you want
to inject the common script. Pay attention that you have to write the connection strings
in this file. 
&lt;li&gt;
Note that the program will detect cube dimensions with their name changed and will
know how to replace them. That means that if you mention the Time dimension in the
common script and inject it to AdventureWorks cube, the script will replace the&amp;nbsp;string
"Time"&amp;nbsp;with the "ShipmentDate" string, for example.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
For those of you who want simple execution file, I added a windows console project
in the solution.
&lt;/p&gt;
&lt;a href="http://www.miky-schreiber.com/blog/content/binary/MdxInjectionConsoleApp.zip"&gt;Link
to only executable program&lt;/a&gt;
&lt;br&gt;
&lt;a href="http://www.miky-schreiber.com/blog/content/binary/MdxInjection2.zip"&gt;Link
to the solution with the added windows application project&lt;/a&gt;
&lt;br&gt;
&lt;a href="http://www.miky-schreiber.com/blog/content/binary/MdxInjection.zip"&gt;Link
to the solution without the windows application project&lt;/a&gt;&lt;img width="0" height="0" src="http://www.miky-schreiber.com/Blog/aggbug.ashx?id=5c9ebeb3-98d5-43ea-9f63-a0e18c3929bd" /&gt;</description>
      <comments>http://www.miky-schreiber.com/Blog/CommentView,guid,5c9ebeb3-98d5-43ea-9f63-a0e18c3929bd.aspx</comments>
      <category>BI;BI/MDX;BI/SQL Server 2005;BI/SQL Server 2005/Analysis Services;BI/SQL Server 2008;BI/SQL Server 2008/Analysis Services;Programming;Programming/.Net</category>
    </item>
    <item>
      <trackback:ping>http://www.miky-schreiber.com/Blog/Trackback.aspx?guid=aca4f6ce-32bb-47ab-a453-5b23c25b3d48</trackback:ping>
      <pingback:server>http://www.miky-schreiber.com/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.miky-schreiber.com/Blog/PermaLink,guid,aca4f6ce-32bb-47ab-a453-5b23c25b3d48.aspx</pingback:target>
      <dc:creator>mikypuff</dc:creator>
      <wfw:comment>http://www.miky-schreiber.com/Blog/CommentView,guid,aca4f6ce-32bb-47ab-a453-5b23c25b3d48.aspx</wfw:comment>
      <wfw:commentRss>http://www.miky-schreiber.com/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=aca4f6ce-32bb-47ab-a453-5b23c25b3d48</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
In the <a href="http://www.miky-schreiber.com/Blog/PermaLink,guid,f5f76417-9128-4fd7-a8d6-ba60619df30e.aspx">previous
post</a> I talked about the DRY principle in the BI Development. I mentioned that
one of the major problems in the principle's implementation is in the common MDX code. <a href="http://cwebbbi.spaces.live.com/">Chris</a> Commented:
</p>
        <p>
"I'd like to be able to have a global MDX Script and be able to do something like
a #include to bring calculations into specific cubes. One to add to my wishlist for
the next version..."
</p>
        <p>
And as I said there that I have a temporary good solution until we'll have
it in the next SQL Server release (if someone from Microsoft is reading...).
</p>
        <p>
The MdxInjection program takes your common MDX Script and a very simple xml file that
defines where to inject this script. It injects the script into your desired cubes
and even replaces the dimensions' names where necessary (it is relevant where you
put dimension in a cube with a different name to thr dimension or when you use Role
Playing Dimensions). I couldn't hold myself from writing some test code so it's also
included in the project. The project is written in C# 2 using much AMO code. All the
technical little details are inside.
</p>
        <p>
Enjoy.
</p>
        <p>
          <a href="http://www.miky-schreiber.com/blog/content/binary/MdxInjection.zip">Download
Link</a>
        </p>
        <img width="0" height="0" src="http://www.miky-schreiber.com/Blog/aggbug.ashx?id=aca4f6ce-32bb-47ab-a453-5b23c25b3d48" />
      </body>
      <title>The MdxInjection Program</title>
      <guid isPermaLink="false">http://www.miky-schreiber.com/Blog/PermaLink,guid,aca4f6ce-32bb-47ab-a453-5b23c25b3d48.aspx</guid>
      <link>http://www.miky-schreiber.com/Blog/PermaLink,guid,aca4f6ce-32bb-47ab-a453-5b23c25b3d48.aspx</link>
      <pubDate>Sun, 16 Nov 2008 23:29:02 GMT</pubDate>
      <description>&lt;p&gt;
In the &lt;a href="http://www.miky-schreiber.com/Blog/PermaLink,guid,f5f76417-9128-4fd7-a8d6-ba60619df30e.aspx"&gt;previous
post&lt;/a&gt; I talked about the DRY principle in the BI Development. I mentioned that
one of the major problems in the principle's implementation is in the common MDX code. &lt;a href="http://cwebbbi.spaces.live.com/"&gt;Chris&lt;/a&gt; Commented:
&lt;/p&gt;
&lt;p&gt;
"I'd like to be able to have a global MDX Script and be able to do something like
a #include to bring calculations into specific cubes. One to add to my wishlist for
the next version..."
&lt;/p&gt;
&lt;p&gt;
And as I said there&amp;nbsp;that&amp;nbsp;I have a temporary good solution until we'll have
it in the next SQL Server release (if someone from Microsoft is reading...).
&lt;/p&gt;
&lt;p&gt;
The MdxInjection program takes your common MDX Script and a very simple xml file that
defines where to inject this script. It injects the script into your desired cubes
and even replaces the dimensions' names where necessary (it is relevant where you
put dimension in a cube with a different name to thr dimension or when you use Role
Playing Dimensions). I couldn't hold myself from writing some test code so it's also
included in the project. The project is written in C# 2 using much AMO code. All the
technical little details are inside.
&lt;/p&gt;
&lt;p&gt;
Enjoy.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.miky-schreiber.com/blog/content/binary/MdxInjection.zip"&gt;Download
Link&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.miky-schreiber.com/Blog/aggbug.ashx?id=aca4f6ce-32bb-47ab-a453-5b23c25b3d48" /&gt;</description>
      <comments>http://www.miky-schreiber.com/Blog/CommentView,guid,aca4f6ce-32bb-47ab-a453-5b23c25b3d48.aspx</comments>
      <category>BI;BI/MDX;BI/SQL Server 2005;BI/SQL Server 2005/Analysis Services;BI/SQL Server 2008;BI/SQL Server 2008/Analysis Services;Programming;Programming/.Net</category>
    </item>
    <item>
      <trackback:ping>http://www.miky-schreiber.com/Blog/Trackback.aspx?guid=c513cf0e-0c66-4834-8f63-9bb965b9639c</trackback:ping>
      <pingback:server>http://www.miky-schreiber.com/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.miky-schreiber.com/Blog/PermaLink,guid,c513cf0e-0c66-4834-8f63-9bb965b9639c.aspx</pingback:target>
      <dc:creator>mikypuff</dc:creator>
      <wfw:comment>http://www.miky-schreiber.com/Blog/CommentView,guid,c513cf0e-0c66-4834-8f63-9bb965b9639c.aspx</wfw:comment>
      <wfw:commentRss>http://www.miky-schreiber.com/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=c513cf0e-0c66-4834-8f63-9bb965b9639c</wfw:commentRss>
      <slash:comments>3</slash:comments>
      <title>The PanoramaBasedWebSite project</title>
      <guid isPermaLink="false">http://www.miky-schreiber.com/Blog/PermaLink,guid,c513cf0e-0c66-4834-8f63-9bb965b9639c.aspx</guid>
      <link>http://www.miky-schreiber.com/Blog/PermaLink,guid,c513cf0e-0c66-4834-8f63-9bb965b9639c.aspx</link>
      <pubDate>Thu, 04 Sep 2008 17:37:45 GMT</pubDate>
      <description>In the last years I've seen many
astonishing BI web sites. I always asked myself what I need to do to bring my
customers such beautiful web-based BI solutions. After having much experience
with Panorama NovaView and especially the Panorama SDK I started to run some
questions in my mind: Why won't I build some re-usable puzzle pieces that can
be joined together to a web site? These pieces can be web controls that using
and even interacting Panorama views and Analysis services. Why won't publish it
as open source and give it to the BI community?&lt;br&gt;
&lt;br&gt;
The &lt;a href="http://www.codeplex.com/PanoramaBasedWebSite"&gt;PanoramaBasedWebSite&lt;/a&gt; project
is a toolkit that contains web controls you can easily use in your ASP.NET based web
site. The project is written in ASP.NET 2.0 and C# 3.5. These web controls interacts
with Panorama views (using Panorama SDK) and Analysis Services (using AMO).&lt;br&gt;
The idea is that you can take these puzzle pieces, combine them as you like in your
web site and create your good-looking BI web site with almost no programming. The
project is only in its first steps, but I believe that publishing the design/idea
is also important. This is why the first &lt;a href="http://www.codeplex.com/PanoramaBasedWebSite/Release/ProjectReleases.aspx?ReleaseId=16866"&gt;release&lt;/a&gt; is
already published, although it has only two web controls so far. This is what we have
so far and what I'm planning for the future. I'll be happy to hear your thoughts/ideas:&lt;br&gt;
&lt;br&gt;
&lt;u&gt;First Release Contents&lt;/u&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
PanoramaView web control - this is the main control of the project and it will probably
take a lot of the project's weight. The control simply shows panorama view. For now,
it doesn't do much rather then showing a view so there's a lot of work to do for this
control. It gets two properties - BriefingBookName and ViewName. You can look at the
TODO: comments in the code to see what future plans I have for this control.&lt;/li&gt;
&lt;li&gt;
UpdateDatePanel web control - this control shows the date and time when the last process
of the cube was made. It can be used in two ways: You can only set the PanoramaViewID
property. The control will extract the cube and the database name from the view and
take the update date from the cube. The other way is to set the CubeName and DataBaseName
properties.&lt;/li&gt;
&lt;/ul&gt;
&lt;u&gt;Future Plans&lt;/u&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
KPIView - Already working on it. Similar to PanoramaView, but if the view shows KPI
then a drilldown will be made when the user clicks on a gauge.&lt;/li&gt;
&lt;lipanoramacomments already="" working="" on="" it.="" one="" of="" my="" customers="" asked="" for="" ability="" bind="" comments="" to="" a="" then="" all="" users="" that="" see="" view="" also="" sees="" comments.="" control="" uses="" the="" ajaxcontroltoolkit="" accordion="" and="" it="" s="" very="" neat.="" believe="" me="" -="" you="" ll="" love="" this="" one.=""&gt;
&lt;li&gt;
QueryList - Shows the result of MDX query. For example, the list shows the top 10
employees of the month (in sales perspective, for example). This list will be interactive,
meaning that clicking on a row will make a drilldown, drill to data or replace the
list with another query results.&lt;/li&gt;
&lt;li&gt;
DimensionPicker - Gives the user the ability to pick members of a dimension/hierarchy.
After selecting, the control will slice all the views on the page (or only predefined
set of views).&lt;/li&gt;
&lt;li&gt;
DatePicker - Same as DimensionPicker but for dates. It will show a calendar to the
user and clicking on a date will perform a slice in the views.&lt;/li&gt;
&lt;/lipanoramacomments&gt;
&lt;/ul&gt;
&lt;p&gt;
The use of the controls in your aspx pages is very easy. You can see for yourself:
&lt;/p&gt;
&lt;p&gt;
&amp;lt;&lt;span style="font-size: 12pt; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; color: brown;"&gt;PanoramaControls:UpdateDateLabel&lt;/span&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt; &lt;span style="color: red;"&gt;ID&lt;/span&gt;&lt;span style="color: blue;"&gt;="&lt;/span&gt;&lt;span style="color: black;"&gt;UpdateDateLabel1&lt;/span&gt;&lt;span style="color: blue;"&gt;"&lt;/span&gt; &lt;span style="color: red;"&gt;runat&lt;/span&gt;&lt;span style="color: blue;"&gt;="&lt;/span&gt;&lt;span style="color: black;"&gt;server&lt;/span&gt;&lt;span style="color: blue;"&gt;"&lt;/span&gt; &lt;span style="color: red;"&gt;PanoramaViewID&lt;/span&gt;&lt;span style="color: blue;"&gt;="&lt;/span&gt;&lt;span style="color: black;"&gt;PanoramaView1&lt;/span&gt;&lt;span style="color: blue;"&gt;"&lt;/span&gt; &lt;span style="color: blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: brown;"&gt;PanoramaControls:PanoramaView&lt;/span&gt; &lt;span style="color: red;"&gt;ID&lt;/span&gt;&lt;span style="color: blue;"&gt;="&lt;/span&gt;&lt;span style="color: black;"&gt;PanoramaView1&lt;/span&gt;&lt;span style="color: blue;"&gt;"&lt;/span&gt; &lt;span style="color: red;"&gt;runat&lt;/span&gt;&lt;span style="color: blue;"&gt;="&lt;/span&gt;&lt;span style="color: black;"&gt;server&lt;/span&gt;&lt;span style="color: blue;"&gt;"&lt;/span&gt; &lt;span style="color: red;"&gt;Width&lt;/span&gt;&lt;span style="color: blue;"&gt;="&lt;/span&gt;&lt;span style="color: black;"&gt;100%&lt;/span&gt;&lt;span style="color: blue;"&gt;"&lt;/span&gt; &lt;span style="color: red;"&gt;Height&lt;/span&gt;&lt;span style="color: blue;"&gt;="&lt;/span&gt;&lt;span style="color: black;"&gt;80%&lt;/span&gt;&lt;span style="color: blue;"&gt;"&lt;/span&gt; &lt;span style="color: red;"&gt;BriefingBookName&lt;/span&gt;&lt;span style="color: blue;"&gt;="&lt;/span&gt;&lt;span style="color: black;"&gt;MikysBook&lt;/span&gt;&lt;span style="color: blue;"&gt;"&lt;/span&gt; &lt;span style="color: red;"&gt;ViewName&lt;/span&gt;&lt;span style="color: blue;"&gt;="&lt;/span&gt;&lt;span style="color: black;"&gt;MyFirstView&lt;/span&gt;&lt;span style="color: blue;"&gt;"&lt;/span&gt; &lt;span style="color: blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
I'll be happy to read your thoughts and ideas about this project. There will be more
to come. Stay Tuned.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.miky-schreiber.com/Blog/aggbug.ashx?id=c513cf0e-0c66-4834-8f63-9bb965b9639c" /&gt;</description>
      <comments>http://www.miky-schreiber.com/Blog/CommentView,guid,c513cf0e-0c66-4834-8f63-9bb965b9639c.aspx</comments>
      <category>BI;BI/Panorama;Programming;Programming/.Net</category>
    </item>
    <item>
      <trackback:ping>http://www.miky-schreiber.com/Blog/Trackback.aspx?guid=9023e8d4-f6f2-4673-9adc-9330a9835f67</trackback:ping>
      <pingback:server>http://www.miky-schreiber.com/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.miky-schreiber.com/Blog/PermaLink,guid,9023e8d4-f6f2-4673-9adc-9330a9835f67.aspx</pingback:target>
      <dc:creator>mikypuff</dc:creator>
      <wfw:comment>http://www.miky-schreiber.com/Blog/CommentView,guid,9023e8d4-f6f2-4673-9adc-9330a9835f67.aspx</wfw:comment>
      <wfw:commentRss>http://www.miky-schreiber.com/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=9023e8d4-f6f2-4673-9adc-9330a9835f67</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">My blog is not an official .Net blog, but
I find myself writing a lot of C# &amp; VB.Net code over the last weeks.<br /><br />
I remember myself working <b>a lot</b> with ObjectDataSource and DataGrid/DataView/Repeater
controls in order to reflect the user what is going on in my DB. The recent changes
in the .Net world reflect the major demand from the developers to help us making this
easier. First, we were introduced to LINQ which is the first level. Now, I believe
that the ASP.Net Dynamic Data is the second level which brings it all together to
the web environment.<br />
We are all busy men and we often don't have much time to persue after all the new
.Net frameworks and developments. My only way to stay tuned to what's going on is
blogs, so I read when I have time. But when I want to learn it in more intimate way
I watch screencasts.<br />
I recommend all of you viewing the <a href="http://download.microsoft.com/download/5/D/1/5D113D2D-571C-4EDD-9C1C-59BC0E6981F6/WinVideo-2007-12-08%20Dynamic%20Data.wmv">17-minutes-cast</a> from <a href="http://blogs.msdn.com/davidebb/default.aspx">David
Ebbo</a> about Dynamic Data. It will show you what it's all about and after it you'll
even be able to create it for yourself. I hope that this is the end of writing junk
code in order to connect your DB to your UI. Time will say if I'm right.<br /><p></p><img width="0" height="0" src="http://www.miky-schreiber.com/Blog/aggbug.ashx?id=9023e8d4-f6f2-4673-9adc-9330a9835f67" /></body>
      <title>ASP.NET Dynamic Data</title>
      <guid isPermaLink="false">http://www.miky-schreiber.com/Blog/PermaLink,guid,9023e8d4-f6f2-4673-9adc-9330a9835f67.aspx</guid>
      <link>http://www.miky-schreiber.com/Blog/PermaLink,guid,9023e8d4-f6f2-4673-9adc-9330a9835f67.aspx</link>
      <pubDate>Mon, 05 May 2008 19:48:17 GMT</pubDate>
      <description>My blog is not an official .Net blog, but I find myself writing a lot of C# &amp;amp; VB.Net code over the last weeks.&lt;br&gt;
&lt;br&gt;
I remember myself working &lt;b&gt;a lot&lt;/b&gt; with ObjectDataSource and DataGrid/DataView/Repeater
controls in order to reflect the user what is going on in my DB. The recent changes
in the .Net world reflect the major demand from the developers to help us making this
easier. First, we were introduced to LINQ which is the first level. Now, I believe
that the ASP.Net Dynamic Data is the second level which brings it all together to
the web environment.&lt;br&gt;
We are all busy men and we often don't have much time to persue after all the new
.Net frameworks and developments. My only way to stay tuned to what's going on is
blogs, so I read when I have time. But when I want to learn it in more intimate way
I watch screencasts.&lt;br&gt;
I recommend all of you viewing the &lt;a href="http://download.microsoft.com/download/5/D/1/5D113D2D-571C-4EDD-9C1C-59BC0E6981F6/WinVideo-2007-12-08%20Dynamic%20Data.wmv"&gt;17-minutes-cast&lt;/a&gt; from &lt;a href="http://blogs.msdn.com/davidebb/default.aspx"&gt;David
Ebbo&lt;/a&gt; about Dynamic Data. It will show you what it's all about and after it you'll
even be able to create it for yourself. I hope that this is the end of writing junk
code in order to connect your DB to your UI. Time will say if I'm right.&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.miky-schreiber.com/Blog/aggbug.ashx?id=9023e8d4-f6f2-4673-9adc-9330a9835f67" /&gt;</description>
      <comments>http://www.miky-schreiber.com/Blog/CommentView,guid,9023e8d4-f6f2-4673-9adc-9330a9835f67.aspx</comments>
      <category>Programming;Programming/.Net</category>
    </item>
    <item>
      <trackback:ping>http://www.miky-schreiber.com/Blog/Trackback.aspx?guid=229185d7-e921-482c-92b8-d73f51353375</trackback:ping>
      <pingback:server>http://www.miky-schreiber.com/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.miky-schreiber.com/Blog/PermaLink,guid,229185d7-e921-482c-92b8-d73f51353375.aspx</pingback:target>
      <dc:creator>mikypuff</dc:creator>
      <wfw:comment>http://www.miky-schreiber.com/Blog/CommentView,guid,229185d7-e921-482c-92b8-d73f51353375.aspx</wfw:comment>
      <wfw:commentRss>http://www.miky-schreiber.com/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=229185d7-e921-482c-92b8-d73f51353375</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">As I have said in the introduction, I recently
left the .Net department in my company. We worked on a very interesting GIS application,
using ESRI's ArcGIS line of products.<br />
In the day before our deadline, I've found a really serious but also foolish bug:
In many places in our product, the date looked like this: 13/41/07, 20/56/07, and
so on.<br />
When I've seen that I immediately knew what happened. Instead of formatting our DateTime
data as dd/MM/yy, we used dd/mm/yy. As you probably know, "mm" is the minutes and
"MM" is the month, so the dates had the minutes instead of the month. 
<br />
That was a foolish mistake which caused us to reopen the solution and running many
tests all over again. bummer.<br /><br />
What have I learned from this?<br /><ol><li>
Always remember the <a target="_blank" title="DRY" href="http://www.pragmaticprogrammer.com/ppbook/extracts/rule_list.html">DRY</a> (Don't
Repeat Yourself) principle (from <a target="_blank" title="the pragmatic programmer" href="http://www.pragmaticprogrammer.com">the
pragmatic programmer</a>). If our DateTime format was stored in one place, the change
could be much more simple.</li><li>
Tests have to be more specific: "Check that all fields are OK" is not enought. Many
programmers checked these pages/modules and nobody found this bug.</li><li>
I believe that code review should had cover this bug. The code review must be in high
quality.<br /></li></ol><p></p><img width="0" height="0" src="http://www.miky-schreiber.com/Blog/aggbug.ashx?id=229185d7-e921-482c-92b8-d73f51353375" /></body>
      <title>Beware of date formats</title>
      <guid isPermaLink="false">http://www.miky-schreiber.com/Blog/PermaLink,guid,229185d7-e921-482c-92b8-d73f51353375.aspx</guid>
      <link>http://www.miky-schreiber.com/Blog/PermaLink,guid,229185d7-e921-482c-92b8-d73f51353375.aspx</link>
      <pubDate>Wed, 09 May 2007 21:36:22 GMT</pubDate>
      <description>As I have said in the introduction, I recently left the .Net department in my company. We worked on a very interesting GIS application, using ESRI's ArcGIS line of products.&lt;br&gt;
In the day before our deadline, I've found a really serious but also foolish bug:
In many places in our product, the date looked like this: 13/41/07, 20/56/07, and
so on.&lt;br&gt;
When I've seen that I immediately knew what happened. Instead of formatting our DateTime
data as dd/MM/yy, we used dd/mm/yy. As you probably know, "mm" is the minutes and
"MM" is the month, so the dates had the minutes instead of the month. 
&lt;br&gt;
That was a foolish mistake which caused us to reopen the solution and running many
tests all over again. bummer.&lt;br&gt;
&lt;br&gt;
What have I learned from this?&lt;br&gt;
&lt;ol&gt;
&lt;li&gt;
Always remember the &lt;a target="_blank" title="DRY" href="http://www.pragmaticprogrammer.com/ppbook/extracts/rule_list.html"&gt;DRY&lt;/a&gt; (Don't
Repeat Yourself) principle (from &lt;a target="_blank" title="the pragmatic programmer" href="http://www.pragmaticprogrammer.com"&gt;the
pragmatic programmer&lt;/a&gt;). If our DateTime format was stored in one place, the change
could be much more simple.&lt;/li&gt;
&lt;li&gt;
Tests have to be more specific: "Check that all fields are OK" is not enought. Many
programmers checked these pages/modules and nobody found this bug.&lt;/li&gt;
&lt;li&gt;
I believe that code review should had cover this bug. The code review must be in high
quality.&lt;br&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.miky-schreiber.com/Blog/aggbug.ashx?id=229185d7-e921-482c-92b8-d73f51353375" /&gt;</description>
      <comments>http://www.miky-schreiber.com/Blog/CommentView,guid,229185d7-e921-482c-92b8-d73f51353375.aspx</comments>
      <category>Programming;Programming/.Net</category>
    </item>
  </channel>
</rss>