<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>MarcelVreuls.Com</title>
	<atom:link href="http://www.marcelvreuls.com/index.php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.marcelvreuls.com</link>
	<description>Certified Oracle E-Business Consultant and Microsoft .NET developer  (General Ledger, Recevables, Payables, Advanced Pricing, Fixed Assest, Dataload, Budget, APRO, Clear2pay, PL/SQL, API</description>
	<lastBuildDate>Wed, 25 Aug 2010 20:47:00 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>looking for a node in XML file</title>
		<link>http://www.marcelvreuls.com/index.php/2010/08/looking-for-a-node-in-xml-file/</link>
		<comments>http://www.marcelvreuls.com/index.php/2010/08/looking-for-a-node-in-xml-file/#comments</comments>
		<pubDate>Wed, 25 Aug 2010 20:47:00 +0000</pubDate>
		<dc:creator>Marcel Vreuls</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[lambda]]></category>
		<category><![CDATA[looking]]></category>
		<category><![CDATA[loop]]></category>
		<category><![CDATA[node]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://www.marcelvreuls.com/?p=289</guid>
		<description><![CDATA[A common requirement with an XML file is to find a particular node. If you are targeting the .NET framework 3.5 or higher, you can find the node using Linq to XML or by using Lambda expressions.
As with many of my prior XML examples, the XML string is as follows:

  
   <a href="http://www.marcelvreuls.com/index.php/2010/08/looking-for-a-node-in-xml-file/"><br/> read more..</a>]]></description>
			<content:encoded><![CDATA[<p>A common requirement with an XML file is to find a particular node. If you are targeting the .NET framework 3.5 or higher, you can find the node using Linq to XML or by using Lambda expressions.</p>
<p>As with many of my prior XML examples, the XML string is as follows:</p>
<p><States><br />
  <State name="Wisconsin"><br />
    <Regions><br />
      <Region name="Milwaukee"><br />
        <Area name="Mukwanago"/><br />
        <Area name="Germantown"/><br />
      </Region><br />
      <Region name="Fox Valley"><br />
        <Area name="Oshkosh" /><br />
        <Area name="Appleton" /><br />
      </Region><br />
    </Regions><br />
  </State><br />
</States></p>
<p>The code to find the node for the Milwaukee region is as follows:</p>
<p>In C#:</p>
<p>// Be sure to set a reference to System.Core and System.Xml.Linq<br />
XElement states  = XElement.Load(&#8220;testXML.xml&#8221;); </p>
<p>// Using LINQ<br />
XElement foundNode;<br />
var query = from XElement r in states.Descendants(&#8220;Region&#8221;)<br />
                   where r.Attribute(&#8220;name&#8221;).Value == &#8220;Milwaukee&#8221;<br />
                   select r;<br />
foundNode = query.FirstOrDefault(); </p>
<p>// Using Lambda expressions<br />
foundNode = states.Descendants(&#8220;Region&#8221;).<br />
     Where(r => r.Attribute(&#8220;name&#8221;).Value ==<br />
                         &#8220;Milwaukee&#8221;).FirstOrDefault(); </p>
<p>In VB:</p>
<p>&#8216; Be sure to set a reference to System.Core and System.Xml.Linq<br />
Dim states As XElement = XElement.Load(&#8220;testXML.xml&#8221;) </p>
<p>&#8216; Using LINQ<br />
Dim foundNode As XElement<br />
Dim query = From r As XElement In states&#8230;<Region> _<br />
                  Where r.@<name> = &#8220;Milwaukee&#8221;<br />
foundNode = query.FirstOrDefault() </p>
<p>&#8216; Using Lambda expression<br />
foundNode = states&#8230;<Region>.Where(Function(r) r.@<name> =  _<br />
                                 &#8220;Milwaukee&#8221;).FirstOrDefault </p>
<p>This code first loads the XML file containing the XML. The next set of code can be done using LINQ or using Lambda expressions. Use either one, but not both. <img src='http://www.marcelvreuls.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>The C# code uses the XElement properties and methods. The VB code uses XML literals.</p>
<p>NOTE: The XElement properties and methods work in VB as well.</p>
<p>Enjoy!</p>
<p>NOTE: This post was created based on a prior post that included both finding a node and adding new nodes. This post separates the first step to provide a more straightforward example.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.marcelvreuls.com/index.php/2010/08/looking-for-a-node-in-xml-file/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Looping through Controls collection within Controls collection within a form or usercontrol</title>
		<link>http://www.marcelvreuls.com/index.php/2010/08/looping-through-controls-collection-within-controls-collection-within-a-form-or-usercontrol/</link>
		<comments>http://www.marcelvreuls.com/index.php/2010/08/looping-through-controls-collection-within-controls-collection-within-a-form-or-usercontrol/#comments</comments>
		<pubDate>Wed, 25 Aug 2010 20:13:38 +0000</pubDate>
		<dc:creator>Marcel Vreuls</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[collection]]></category>
		<category><![CDATA[control]]></category>
		<category><![CDATA[control collection]]></category>
		<category><![CDATA[controls]]></category>
		<category><![CDATA[foreach]]></category>
		<category><![CDATA[loop]]></category>
		<category><![CDATA[through]]></category>
		<category><![CDATA[usercontrol]]></category>
		<category><![CDATA[windows form]]></category>

		<guid isPermaLink="false">http://www.marcelvreuls.com/?p=285</guid>
		<description><![CDATA[If you look at the Controls collection for the form in this example, you find that it contains only two controls. Only the two Panel controls are actually on the form. The other controls are on the Panel controls. So to find those controls, you need to loop through the Controls collection of each Panel.
If<a href="http://www.marcelvreuls.com/index.php/2010/08/looping-through-controls-collection-within-controls-collection-within-a-form-or-usercontrol/"><br/> read more..</a>]]></description>
			<content:encoded><![CDATA[<p>If you look at the Controls collection for the form in this example, you find that it contains only two controls. Only the two Panel controls are actually on the form. The other controls are on the Panel controls. So to find those controls, you need to loop through the Controls collection of each Panel.</p>
<p>If you put a Tab control on a Panel control, then the TextBox controls would be on the Tab control which is on the Panel control. The easiest way to look for controls that could be on other controls which in turn could be on other controls, is to use recursion.</p>
<p>Recursion is basically calling a method from the method itself. (You can find a more detailed explanation here.) The following demonstrates recursion to find all of the TextBoxes on a form.</p>
<p>In C#:</p>
<p>private void ProcessControls(Control ctrlContainer)<br />
{<br />
    foreach (Control ctrl in ctrlContainer.Controls)<br />
    {<br />
        if (ctrl.GetType() == typeof(TextBox))<br />
        {<br />
            // Do whatever to the TextBox<br />
        } </p>
<p>        if (ctrl.HasChildren)<br />
            ProcessControls(ctrl);<br />
    }<br />
}</p>
<p>In VB:</p>
<p>Private Sub ProcessControls(ByVal ctrlContainer As Control)<br />
    For Each ctrl As Control In ctrlContainer.Controls<br />
        If TypeOf ctrl Is TextBox Then<br />
            &#8216; Do whatever to the TextBox<br />
        End If </p>
<p>        &#8216; If the control has children,<br />
        &#8216; recursively call this function<br />
        If ctrl.HasChildren Then<br />
            ProcessControls(ctrl)<br />
        End If<br />
    Next<br />
End Sub </p>
<p>The code begins by processing each control within the defined container control using the container’s Controls collection. The control’s type is checked to determine if it is the desired type of control. This technique can be used to look for any type of control or multiple types of controls.</p>
<p>The HasChildren property of the control is checked to determine if the control itself is a container for other controls. If so, it calls this method recursively using the control as the container control.</p>
<p>This method resides in the Form and is called as follows.</p>
<p>In C#:</p>
<p>ProcessControls(this);</p>
<p>In VB:</p>
<p>ProcessControls(Me)</p>
<p>The form itself is passed into the ProcessControls method as the highest level container. If you only want to search for controls within some other container, pass it instead of the entire form. For example, if you only wanted to search for TextBox controls on Panel2 or on controls that are on Panel2, you would pass Panel2 instead of the form (this or me).</p>
<p>Finding Controls By Name<br />
If you want to find a control or set of controls by name, there is an easier way.</p>
<p>In C#:</p>
<p>Control[] ctrls = this.Controls.Find(&#8220;TextBox1&#8243;, true);</p>
<p>In VB:</p>
<p>Dim ctrls() As Control = Me.Controls.Find(&#8220;TextBox1&#8243;, True)</p>
<p>This code uses the Find method of the controls collection. The first parameter defines the name of the control(s) to find. If the second parameter is true, the Find will search through all child controls, performing the recursive operation for you. If it is false, it will only look through the form’s Controls collection.</p>
<p>When I was first working with the Find method, I thought it odd that it returned an array since you can only put one control on the form named “TextBox1”. However, you can add multiple controls with the same name using Controls.Add. Also, if you build a composite user control you can also put a TextBox1 on the user control. So if you also have a TextBox1 on the form, the Find method will find two controls named “TextBox1”.</p>
<p>Have fun, hence it took me an afternoon to get it right <img src='http://www.marcelvreuls.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.marcelvreuls.com/index.php/2010/08/looping-through-controls-collection-within-controls-collection-within-a-form-or-usercontrol/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>myWebCam (Beta)</title>
		<link>http://www.marcelvreuls.com/index.php/2010/08/mywebcam-beta/</link>
		<comments>http://www.marcelvreuls.com/index.php/2010/08/mywebcam-beta/#comments</comments>
		<pubDate>Fri, 20 Aug 2010 11:41:54 +0000</pubDate>
		<dc:creator>Marcel Vreuls</dc:creator>
				<category><![CDATA[Oracle E-Business Suite]]></category>

		<guid isPermaLink="false">http://www.marcelvreuls.com/index.php/2010/08/mywebcam-beta/</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[<p><img id="photo-gallery" src="webcam/webcam.jpg" alt="" width="420" height="260" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.marcelvreuls.com/index.php/2010/08/mywebcam-beta/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Facebook, Twitter, LinkedIn, Digg, YouTube, Flicker and Google API and .NET libraries</title>
		<link>http://www.marcelvreuls.com/index.php/2010/08/facebook-twitter-linkedin-digg-youtube-flicker-and-google-api-and-net-libraries/</link>
		<comments>http://www.marcelvreuls.com/index.php/2010/08/facebook-twitter-linkedin-digg-youtube-flicker-and-google-api-and-net-libraries/#comments</comments>
		<pubDate>Fri, 06 Aug 2010 19:42:20 +0000</pubDate>
		<dc:creator>Marcel Vreuls</dc:creator>
				<category><![CDATA[Oracle E-Business Suite]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[digg]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[flicker]]></category>
		<category><![CDATA[google api]]></category>
		<category><![CDATA[linkedin]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[youtube]]></category>

		<guid isPermaLink="false">http://www.marcelvreuls.com/?p=282</guid>
		<description><![CDATA[Facebook, Twitter, LinkedIn, Digg, YouTube, Flicker, Orkut..etc are the most popular in the Web. Now these are becoming a part of website and web application. These provide API to use the service in your web app. Here is the links of API and sample wrapper for .NET developer. 
]]></description>
			<content:encoded><![CDATA[<p>Facebook, Twitter, LinkedIn, Digg, YouTube, Flicker, Orkut..etc are the most popular in the Web. Now these are becoming a part of website and web application. These provide API to use the service in your web app. Here is the <a href="http://www.techbrij.com/15/social-media-apis-library-dotnet-developer">links </a>of API and sample wrapper for .NET developer. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.marcelvreuls.com/index.php/2010/08/facebook-twitter-linkedin-digg-youtube-flicker-and-google-api-and-net-libraries/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Make resolution independent windows app in .net</title>
		<link>http://www.marcelvreuls.com/index.php/2010/08/make-resolution-independent-windows-app-in-net/</link>
		<comments>http://www.marcelvreuls.com/index.php/2010/08/make-resolution-independent-windows-app-in-net/#comments</comments>
		<pubDate>Fri, 06 Aug 2010 19:38:35 +0000</pubDate>
		<dc:creator>Marcel Vreuls</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[properties]]></category>
		<category><![CDATA[resize]]></category>
		<category><![CDATA[resolution]]></category>

		<guid isPermaLink="false">http://www.marcelvreuls.com/index.php/2010/08/make-resolution-independent-windows-app-in-net/</guid>
		<description><![CDATA[It is required that windows app should have same layout at different resolutions means there should be no effect on layout of app on changing resolution. Here are the steps to do this.
1. Use table layout panel
2. Drag control in cell of tablelayoutpanel and set anchor and dock property.
3. Set rowspan and colspan properties of<a href="http://www.marcelvreuls.com/index.php/2010/08/make-resolution-independent-windows-app-in-net/"><br/> read more..</a>]]></description>
			<content:encoded><![CDATA[<p>It is required that windows app should have same layout at different resolutions means there should be no effect on layout of app on changing resolution. Here are the steps to do this.</p>
<p>1. Use table layout panel<br />
2. Drag control in cell of tablelayoutpanel and set anchor and dock property.<br />
3. Set rowspan and colspan properties of dragged control to merge cells<br />
4. Set margin and padding of dragged control with respect to cell.<br />
5. drag all controls and follow same steps, complete design using tablelayoutpanel<br />
6. Now set all columns and rows size of tablelayoutpanel = autosize (or in %)<br />
7. Set tablelayoutpanel properties autosize = true,autosizemode = grow and shrink<br />
8. Set Forms properties autosize = true,autosizemode = grow and shrink<br />
9. Run windows app<br />
If your windows app opens in maximum state then set tablelayoutpanel dock property =fill.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.marcelvreuls.com/index.php/2010/08/make-resolution-independent-windows-app-in-net/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tele2 start kabeloorlog met losse flodders (bron: TotaalTV)</title>
		<link>http://www.marcelvreuls.com/index.php/2010/07/tele2-start-kabeloorlog-met-losse-flodders-bron-totaaltv/</link>
		<comments>http://www.marcelvreuls.com/index.php/2010/07/tele2-start-kabeloorlog-met-losse-flodders-bron-totaaltv/#comments</comments>
		<pubDate>Fri, 30 Jul 2010 11:02:55 +0000</pubDate>
		<dc:creator>Marcel Vreuls</dc:creator>
				<category><![CDATA[Oracle E-Business Suite]]></category>
		<category><![CDATA[alles in 1]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Kabel]]></category>
		<category><![CDATA[kabeloorlog]]></category>
		<category><![CDATA[tele2]]></category>
		<category><![CDATA[UPC]]></category>
		<category><![CDATA[ZIGGO]]></category>

		<guid isPermaLink="false">http://www.marcelvreuls.com/?p=279</guid>
		<description><![CDATA[(bron: TotaalTV)
Tele2 start kabeloorlog met losse flodders
Het enige doel dat Tele2 had met de lancering van analoge televisie via de kabelnetwerken van Ziggo en UPC zou het starten met een kabeloorlog zijn. Günther Vogelpoel, directeur consumentenzaken bij Tele2, was hier in een landelijke krant heel stellig in. Maar is de kabeloorlog nu al gestart?
Het afgelopen<a href="http://www.marcelvreuls.com/index.php/2010/07/tele2-start-kabeloorlog-met-losse-flodders-bron-totaaltv/"><br/> read more..</a>]]></description>
			<content:encoded><![CDATA[<p>(bron: TotaalTV)</p>
<p>Tele2 start kabeloorlog met losse flodders</p>
<p>Het enige doel dat Tele2 had met de lancering van analoge televisie via de kabelnetwerken van Ziggo en UPC zou het starten met een kabeloorlog zijn. Günther Vogelpoel, directeur consumentenzaken bij Tele2, was hier in een landelijke krant heel stellig in. Maar is de kabeloorlog nu al gestart?</p>
<p>Het afgelopen weekeind circuleerden diverse tarieven die Tele2 zou gaan vragen voor analoge televisie in de media. De Telegraaf hield het op 5 euro per maand. Broadcast Magazine verdubbelde dat bedrag tot 10 euro. De NOS hield het met zijn 15 euro wel op een heel karig voordeel voor de televisiekijker. Allen hadden, zoals Totaal TV zaterdagmiddag al meldde, gelijk. Tele2 hield het erop dat het prijsvoordeel voor de consument bij afname van analoge televisie bij het bedrijf tot maar liefst 70 procent zou kunnen oplopen. De kabeloorlog is gisteren, met de lancering van analoge televisie door Tele2, officieel begonnen. Maar wordt deze kabeloorlog al in alle hevigheid gevoerd? Nee, zo blijkt uit onderzoek van Totaal TV. Want analoge televisie wordt door de consument pas voor 5 euro per maand verkregen wanneer deze een 4-in-1 pakket bij Tele2 afneemt. En laten UPC en Ziggo nu ook van deze 4-in-1 pakketten tegen gereduceerde tarieven aanbieden. En plots lijkt de kabeloorlog te draaien om verschillen van bijvoorbeeld 5 eurocent per maand. Waarbij die 5 eurocent hogere prijs zich ook nog eens vertaalt in een substantieel hogere snelheid op het wereldwijde web. Tele2 is overigens wel de eerste drie maanden van het nieuwe contract goedkoper. Dit door tijdelijke prijsstellingen in deze beginperiode. Hieronder de prijsverschillen op een rijtje:</p>
<p>Alleen analoge televisie:</p>
<p>De consument die alleen analoge kabeltelevisie wil afnemen is bij Tele2 goedkoper uit. Dat was ook de doelstelling van telecomwaakhond OPTA bij het openbreken van de Nederlandse kabelmarkt. Toch vallen de prijsverschillen iets tegen. Bij Tele2 gaat de analoge kabelkijker € 15,00 per maand betalen. Ziggo volgt met € 16,45, daarna komt UPC met € 16,80. Ziggo noemt het standaardabonnement overigens digitaal basispakket. Je betaalt volgens het mediabedrijf voor het digitaal aanbod van tientallen televisie- en radiozenders en krijgt het analoge aanbod er gratis bij.</p>
<p>Internet, telefonie en analoge televisie:</p>
<p>Een volgende optie die Tele2 heeft is een 3-in-1 pakket met daarin internet, telefonie en analoge televisie. De eerste drie maanden betaalt men daar € 24,95 per maand voor. Echter na de eerste drie maanden dient de abonnee de daadwerkelijke abonnementprijs van € 39,95 te betalen. Daarbij boekt Tele2 grotere verschillen ten opzichte van de directe concurrentie. Bij UPC betaalt men voor een soortgelijk abonnement € 42,80 per maand. Ziggo is nog iets duurder met € 46,40 per maand. Hierbij kan het prijsverschil dus oplopen tot € 6,45 per maand.</p>
<p>Internet, telefonie, digitale televisie en analoge televisie:</p>
<p>Het 4-in-1 pakket kost bij Tele2 de eerste drie maanden € 29,95 per maand. Daarna betaalt de abonnee € 44,95 per maand. De prijsverschillen worden hierbij toch wel heel erg klein. UPC is slechts een eurostuiver per maand duurder dan Tele2 met een alles-in-1 pakket van € 45,00 per maand. Bij Ziggo betaalt men € 51,50 per maand. Hierbij kan het prijsverschil dus oplopen tot € 6,55 per maand.</p>
<p>Toch moeten we enkele kanttekeningen bij bovenstaande prijsvergelijking maken. Ziggo mag dan wel duurder zijn maar heeft daarnaast toch wel enkele extraatjes. Zo heeft men standaard digitale televisie met daarbij ook HD-kanalen van de Nederlandse Publieke Omroep en Eurosport HD in dit standaard digitaal pakket. Bij Tele2 en UPC moet men voor HDTV extra betalen. Bij Tele2 en UPC krijgt men daarin tegen weer een bruikleen decoder, terwijl de abonnee bij Ziggo zelf de digitale decoder moet kopen. Dit heeft dan overigens weer als voordeel dat er een vrije decoderkeus voor de Ziggo abonnee is. Ook kan men bij Ziggo als enige van de drie aanbieders met een ingebouwde digitale kabeltuner in de televisie via het televisietoestel zelf, dus zonder tussenkomst van een digitale decoder, naar digitale televisie kijken.</p>
<p>Bij onze prijsvergelijking zitten ook verschillen in de uiteindelijke internetsnelheid die men verkrijgt. Tele2 gebruikt op dit moment ADSL2+. Hierdoor kan men op dit moment internetsnelheden van maximaal 20 mbps aanbieden. In praktijk wordt deze snelheid bijna nooit gehaald. De snelheid is bijvoorbeeld afhankelijk van de afstand van de wijkcentrale naar het huis van de consument. Hoe langer deze afstand, hoe lager de snelheid. Bij kabelinternet van Ziggo en UPC wordt vrijwel ook nooit de maximale snelheid behaald maar de ervaringen leren wel dat de kans van benadering van de maximale snelheid groter is. Bij ons vergelijk biedt UPC standaard een 25 mbps internetsnelheid. Bij Ziggo varieert in ons vergelijk de internetsnelheid van 15 mbps tot 30 mbps. Daarnaast gebruikt Tele2 IPTV voor digitale televisie. Dit houdt in dat de snelheid van internet lager is wanneer gelijktijdig naar digitale televisie gekeken wordt. Mede hierdoor geeft Tele2 HDTV bijvoorbeeld met een lagere bandbreedte door. Ook zijn er verschillen in het aanbod van digitale televisiekanalen bij de verschillende televisieaanbieders. UPC en Ziggo geven veel meer zenders digitaal door. Hiervoor moeten soms wel aanvullende abonnementen worden afgesloten.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.marcelvreuls.com/index.php/2010/07/tele2-start-kabeloorlog-met-losse-flodders-bron-totaaltv/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Boxing and UnBoxing, the .NET way</title>
		<link>http://www.marcelvreuls.com/index.php/2010/07/boxing-and-unboxing-the-net-way/</link>
		<comments>http://www.marcelvreuls.com/index.php/2010/07/boxing-and-unboxing-the-net-way/#comments</comments>
		<pubDate>Sun, 25 Jul 2010 18:10:00 +0000</pubDate>
		<dc:creator>Marcel Vreuls</dc:creator>
				<category><![CDATA[Oracle E-Business Suite]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[agent]]></category>
		<category><![CDATA[boxing]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[Oop]]></category>
		<category><![CDATA[rezon4]]></category>
		<category><![CDATA[types]]></category>
		<category><![CDATA[unboxing]]></category>
		<category><![CDATA[value]]></category>

		<guid isPermaLink="false">http://www.marcelvreuls.com/?p=277</guid>
		<description><![CDATA[In this article I will explain the concepts of Boxing and UnBoxing. C# provides us with Value types and Reference Types. Value Types are stored on the stack and Reference types are stored on the heap. The conversion of value type to reference type is known as boxing and converting reference type back to the<a href="http://www.marcelvreuls.com/index.php/2010/07/boxing-and-unboxing-the-net-way/"><br/> read more..</a>]]></description>
			<content:encoded><![CDATA[<p>In this article I will explain the concepts of Boxing and UnBoxing. C# provides us with Value types and Reference Types. Value Types are stored on the stack and Reference types are stored on the heap. The conversion of value type to reference type is known as boxing and converting reference type back to the value type is known as unboxing. </p>
<p>Let me explain you little more about Value and Reference Types.</p>
<p>Value Types<br />
Value types are primitive types that are mapped directly to the FCL. Like Int32 maps to System.Int32, double maps to System.double. All value types are stored on stack and all the value types are derived from System.ValueType. All structures and enumerated types that are derived from System.ValueType are created on stack, hence known as ValueType.</p>
<p>Reference Types<br />
Reference Types are different from value types in such a way that memory is allocated to them from the heap. All the classes are of reference type. C# new operator returns the memory address of the object.</p>
<p>Examples<br />
Lets see some examples to have a better understanding of Value Types and Reference Types. Since we know that all ValueTypes are derived from System.Valuewe can write something like this:</p>
<p> System.ValueType r = 5;So what do you think about the above line of code. Will it compile ? Yes it will compile. But wait what type is it cause I don&#8217;t remember any type which is called System.ValueType since its a base class from which all value types inherit. So is it Int32, Int64,double, decimal etc. It turns out that the type for variable &#8216;r&#8217; is System.Int32. The Question arrises why Int32 and why not Int16. Well its because it is mapped to Int32 by default depending upon the Initial value of the variable.</p>
<p>You cannot write something like this since System.ValueType is not a primitive type its a base class for primitive value types and these mathematical operations can be performed on primitive types.</p>
<p>System.ValueType r = 10;<br />
r++;In the above example I told you that variable &#8216;r&#8217; will be a System.Int32 variable but if you don&#8217;t believe me than you can find out yourself using the GetType() method:</p>
<p> System.ValueType r = 5;<br />
Console.WriteLine(r.GetType()) // returns System.Int32; Here are few samples you can try on your own:</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
       System.ValueType r = 23.45;<br />
        Console.WriteLine(r.GetType()); // what does this print<br />
        //&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
        System.ValueType r = 23.45F;<br />
        Console.WriteLine(r.GetType()); // What does this print<br />
        //&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
        System.ValueType r = 2U;<br />
        Console.WriteLine(r.GetType()); // What does this print<br />
        //&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
        System.ValueType r = &#8216;c&#8217;;<br />
        Console.WriteLine(r.GetType()); // What does this print<br />
        //&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
        System.ValueType r = &#8216;ac&#8217;;<br />
        Console.WriteLine(r.GetType()); // tricky<br />
        //&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
        System.ValueType r = &#8220;Hello World&#8221;;<br />
        Console.WriteLine(r.GetType()); // tricky </p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>Boxing<br />
Lets now jump to Boxing. Sometimes we need to convert ValueTypes to Reference Types also known as boxing. Lets see a small example below. You see in the example I wrote &#8220;implicit boxing&#8221; which means you don&#8217;t need to tell the compiler that you are boxing Int32 to object because it takes care of this itself although you can always make explicit boxing as seen below right after implicit boxing.</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
        Int32 x = 10;<br />
        object o = x ;  // Implicit boxing<br />
        Console.WriteLine(&#8220;The Object o = {0}&#8221;,o); // prints out 10<br />
        //&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
        Int32 x = 10;<br />
        object o = (object) x; // Explicit Boxing<br />
        Console.WriteLine(&#8220;The object o = {0}&#8221;,o); // prints out 10</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>Unboxing<br />
Lets now see UnBoxing an object type back to value type. Here is a simple code that unbox an object back to Int32 variable. First we need to box it so that we can unbox.</p>
<p>        Int32 x = 5;<br />
        object o = x; // Implicit Boxing<br />
        x = o; // Implicit UnBoxing      </p>
<p>   So, you see how easy it is to box and how easy it is to unbox. The above example first boxs Int32 variable to an object type and than simply unbox it to xagain. All the conversions are taking place implicitly. Everything seems right in this example there is just one small problem which is that the above code is will not compile. You cannot Implicitly convert a reference type to a value type. You must explicitly specify that you are unboxing as shown in the code below.</p>
<p>        Int32 x = 5;<br />
        object o = x; // Implicit Boxing<br />
        x = (Int32)o; // Explicit UnBoxing     </p>
<p>Lets see another small example of unboxing.</p>
<p>        Int32 x = 5; // declaring Int32<br />
        Int64 y = 0; // declaring Int64 double<br />
        object o = x; // Implicit Boxing<br />
        y = (Int64)o; // Explicit boxing to double<br />
        Console.WriteLine(&#8220;y={0}&#8221;,y);       </p>
<p>This example will not work. It will compile successfully but at runtime It will generate an exception of System.InvalidCastException. The reason is variable x is boxed as Int32 variable so it must be unboxed to Int32 variable. So, the type the variable uses to box will remain the same when unboxing the same variable. Of course you can cast it to Int64 after unboxing it as Int32 as follows:</p>
<p>        Int32 x = 5; // declaring Int32<br />
        Int64 y = 0; // declaring Int64 double<br />
        object o = x; // Implicit Boxing<br />
        y = (Int64)(Int32)o; // Unboxing and than casting to double<br />
        Console.WriteLine(&#8220;y={0}&#8221;,y);      </p>
<p>I am sure that you all have grasp the basic understanding of Boxing and Unboxing. Happy Coding and practice a lot !</p>
]]></content:encoded>
			<wfw:commentRss>http://www.marcelvreuls.com/index.php/2010/07/boxing-and-unboxing-the-net-way/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Application Management Pack and Application Change Management Pack 3.1 Now Available</title>
		<link>http://www.marcelvreuls.com/index.php/2010/06/application-management-pack-and-application-change-management-pack-3-1-now-available/</link>
		<comments>http://www.marcelvreuls.com/index.php/2010/06/application-management-pack-and-application-change-management-pack-3-1-now-available/#comments</comments>
		<pubDate>Thu, 17 Jun 2010 10:45:29 +0000</pubDate>
		<dc:creator>Marcel Vreuls</dc:creator>
				<category><![CDATA[Oracle E-Business Suite]]></category>
		<category><![CDATA[acmp]]></category>
		<category><![CDATA[Agenturen]]></category>
		<category><![CDATA[amp]]></category>
		<category><![CDATA[application]]></category>
		<category><![CDATA[Commissie]]></category>
		<category><![CDATA[E-business]]></category>
		<category><![CDATA[grid control]]></category>
		<category><![CDATA[Handelaren]]></category>
		<category><![CDATA[management]]></category>
		<category><![CDATA[marcel]]></category>
		<category><![CDATA[Oop]]></category>
		<category><![CDATA[Oop!Agent]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[pack]]></category>
		<category><![CDATA[patch]]></category>
		<category><![CDATA[Rezon4ERP]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[suite]]></category>
		<category><![CDATA[vreuls]]></category>

		<guid isPermaLink="false">http://www.marcelvreuls.com/?p=270</guid>
		<description><![CDATA[a new version of of Application Management Pack 3.1 and Application Change Management Pack 3.1 for Oracle E-Business Suite had been released earlier this year. 
Application Management Pack (AMP) and Application Change Management Pack (ACMP) extend Oracle Enterprise Manager Grid Control 10g to monitor and manage Oracle E-Business Suite components and the changes the system<a href="http://www.marcelvreuls.com/index.php/2010/06/application-management-pack-and-application-change-management-pack-3-1-now-available/"><br/> read more..</a>]]></description>
			<content:encoded><![CDATA[<p>a new version of of Application Management Pack 3.1 and Application Change Management Pack 3.1 for Oracle E-Business Suite had been released earlier this year. </p>
<p>Application Management Pack (AMP) and Application Change Management Pack (ACMP) extend Oracle Enterprise Manager Grid Control 10g to monitor and manage Oracle E-Business Suite components and the changes the system undergoes.  </p>
<p><a href="Oracle E-Business Suite Release Management Packs 3.1 (AMP-ACP 3.1) (Patch 8333939)">Oracle E-Business Suite Release Management Packs 3.1 (AMP-ACP 3.1) (Patch 8333939)</a></p>
<p>Application Change Management Pack provides features to monitor and manage Oracle E-Business Suite changes. Application Change Management Pack provides a centralized view to monitor and orchestrate changes (both functional and technical) across multiple Oracle E-Business Suite systems.</p>
<p>Application Management Pack for Oracle E-Business Suite extends Enterprise Manager Grid Control to monitor and manage Oracle E-Business Suite systems.<br />
<span id="more-270"></span><br />
What&#8217;s new in this release?</p>
<p>Application Change Management Pack 3.1 has been enhanced to provide more control and flexibility in managing Oracle E-Business Suite changes:</p>
<p>Change Approval Framework: Changes orchestrated through Application Change Management Pack can now be controlled through the new change approval framework in Release 3.1. Users can now be segregated as approvers across Oracle E-Business Suite systems and modules using Customization Manager, Patch Manager or Setup Manager. Built-in notification capabilities enable approvers and requestors to be informed about the status of relevant change requests. It also provides an implicit audit trail mechanism. </p>
<p>Integrated Custom Application Management: An integrated custom applications management feature enables users to easily register new custom applications across multiple Oracle E-Business Suite systems.  Administrators can track and validate existing custom applications using a common framework. </p>
<p>Prerequisite Patch Analysis: Oracle E-Business Suite patches can now be analyzed for prerequisites prior to target system deployment. The analysis verifies whether the prerequisites are already available.  If not, they can be added to the automated patch job.</p>
<p>Offline Transformation:  Users have the new ability to download Oracle E-Business Suite setup data to Microsoft Excel.  Setup Data can be edited and new data can be entered via Excel worksheets. Data is validated within Microsoft Excel and in Setup Manager. </p>
<p>Built-in Intelligence: Release 3.1 has additional enhancements, including:</p>
<p>Automated file driver metadata generation for new files and $Header handling<br />
Customization Package impact analysis report<br />
Advanced filtering options for setup migration<br />
Improved Usability:  Release 3.1 contains usability and reporting enhancements to ensure better integration with third-party systems like source-control systems.</p>
<p>What&#8217;s New in Application Management Pack 3.1?</p>
<p>This new release of Application Management Pack for Oracle E-Business Suite Version 3.1 offers the following new capabilities: </p>
<p>Smart Clone:  Next Generation hot-cloning technology built on Enterprise Manager Grid Control. Smart Clone provides flexibility for administrators to incorporate their own custom database cloning techniques into AMP&#8217;s cloning routines. Smart Clone supports cloning of single or multi-node Oracle E-Business Suite 11.5.10 CU2 systems deployed on Real Application Clusters (RAC) and Shared APPL_TOP. Some of the key cloning scenarios supported include RAC to RAC, RAC to Non-RAC, and Scale Down (Multi-Node to Single Node).</p>
<p>Concurrent Processing Dashboard:  Administrators now have the ability to monitor and manage Concurrent Managers and concurrent programs through Application Management Pack Release 3.1. The new dashboard displays the efficiency of Concurrent Managers in processing concurrent requests. Administrators can create a watch list of specific concurrent managers and specific concurrent programs. </p>
<p>End-to-End Tracing:  Administrators can analyze Oracle E-Business Suite&#8217;s database load from Application Management Pack 3.1.  Administrators can trace Application Web User Sessions down to Database Sessions. Top database sessions can also be traced back to individual application users. </p>
<p>Prerequisites</p>
<p>Operating system:  Linux, Solaris, HP-UX, IBM AIX<br />
Enterprise Manager Grid Control 10gR5<br />
Oracle E-Business Suite Release 11.5.10 CU2 + 11i.ATG_PF.H.RUP6; or,<br />
Oracle E-Business Suite Release 12.0.4 + R12.ATG_PF.A.delta.6; or,<br />
Oracle E-Business Suite Release 12.1<br />
Both Application Management Pack for Oracle E-Business Suite and Application Change Management Pack for Oracle E-Business Suite are separately-licensed products. Application Management Pack for Oracle E-Business Suite is a mandatory prerequisite for Application Change Management Pack for Oracle E-Business Suite. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.marcelvreuls.com/index.php/2010/06/application-management-pack-and-application-change-management-pack-3-1-now-available/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>EBS 12.1.1 Test Starter Kit now Available for Oracle Application Testing Suite</title>
		<link>http://www.marcelvreuls.com/index.php/2010/06/ebs-12-1-1-test-starter-kit-now-available-for-oracle-application-testing-suite/</link>
		<comments>http://www.marcelvreuls.com/index.php/2010/06/ebs-12-1-1-test-starter-kit-now-available-for-oracle-application-testing-suite/#comments</comments>
		<pubDate>Thu, 17 Jun 2010 10:38:02 +0000</pubDate>
		<dc:creator>Marcel Vreuls</dc:creator>
				<category><![CDATA[Oracle E-Business Suite]]></category>
		<category><![CDATA[application]]></category>
		<category><![CDATA[EBS]]></category>
		<category><![CDATA[kit]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[starter]]></category>
		<category><![CDATA[suite]]></category>
		<category><![CDATA[testing]]></category>

		<guid isPermaLink="false">http://www.marcelvreuls.com/?p=268</guid>
		<description><![CDATA[Ever discussed automated testing tools for the E-Business Suite several times on this blog, since testing is such a key part of everyone&#8217;s implementation lifecycle.  An important part of our testing arsenal in E-Business Suite Development is the Oracle Application Testing Suite.  The Oracle Application Testing Suite (OATS) is built on the foundation<a href="http://www.marcelvreuls.com/index.php/2010/06/ebs-12-1-1-test-starter-kit-now-available-for-oracle-application-testing-suite/"><br/> read more..</a>]]></description>
			<content:encoded><![CDATA[<p>Ever discussed automated testing tools for the E-Business Suite several times on this blog, since testing is such a key part of everyone&#8217;s implementation lifecycle.  An important part of our testing arsenal in E-Business Suite Development is the Oracle Application Testing Suite.  The Oracle Application Testing Suite (OATS) is built on the foundation of the e-TEST suite of products acquired from Empirix  in 2008.  The testing suite is comprised of:</p>
<p>   1. Oracle Load Testing for scalability, performance, and load testing<br />
   2. Oracle Functional Testing for automated functional and regression testing<br />
   3. Oracle Test Manager for test process management, test execution, and defect tracking</p>
<p>Oracle Application Testing Suite 9.0 has been supported for use with the E-Business Suite since 2009.  I&#8217;m very pleased to let you know that our E-Business Suite Release 12.1.1 Test Starter Kit is now available for Oracle Application Testing Suite 9.1.  You can download it here</p>
<p><a href="http://www.oracle.com/technology/software/products/app-testing/index.html">Oracle Application Testing Suite Downloads</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.marcelvreuls.com/index.php/2010/06/ebs-12-1-1-test-starter-kit-now-available-for-oracle-application-testing-suite/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Use the functional administrator responsibility for clearing application cache</title>
		<link>http://www.marcelvreuls.com/index.php/2010/06/use-the-functional-administrator-responsibility-for-clearing-application-cache/</link>
		<comments>http://www.marcelvreuls.com/index.php/2010/06/use-the-functional-administrator-responsibility-for-clearing-application-cache/#comments</comments>
		<pubDate>Thu, 17 Jun 2010 10:34:29 +0000</pubDate>
		<dc:creator>Marcel Vreuls</dc:creator>
				<category><![CDATA[Oracle E-Business Suite]]></category>
		<category><![CDATA[administrator]]></category>
		<category><![CDATA[cache]]></category>
		<category><![CDATA[core]]></category>
		<category><![CDATA[EBS]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[functional]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[service]]></category>

		<guid isPermaLink="false">http://www.marcelvreuls.com/?p=266</guid>
		<description><![CDATA[Every needed a memory cleanup but no sysadmin or dba available or willing  . You can do it through the application
1- Navigate to Functional Administrator Responsibility
2- Choose the “ Core Services” Tab
3- Choose “Caching Framework”
4- Click on “Global Configuration”
5- Click on “Clear All Cache”
6- The Click on yes on the display which will appear.
]]></description>
			<content:encoded><![CDATA[<p>Every needed a memory cleanup but no sysadmin or dba available or willing <img src='http://www.marcelvreuls.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> . You can do it through the application</p>
<p>1- Navigate to Functional Administrator Responsibility<br />
2- Choose the “ Core Services” Tab<br />
3- Choose “Caching Framework”<br />
4- Click on “Global Configuration”<br />
5- Click on “Clear All Cache”<br />
6- The Click on yes on the display which will appear.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.marcelvreuls.com/index.php/2010/06/use-the-functional-administrator-responsibility-for-clearing-application-cache/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
