<?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>KurtSchroeder.com &#187; c#</title>
	<atom:link href="http://kurtschroeder.com/category/c/feed/" rel="self" type="application/rss+xml" />
	<link>http://kurtschroeder.com</link>
	<description></description>
	<lastBuildDate>Thu, 10 Feb 2011 13:46:44 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.5</generator>
		<item>
		<title>ASP.Net vs PHP/WordPress</title>
		<link>http://kurtschroeder.com/2011/02/10/asp-net-vs-phpwordpress/</link>
		<comments>http://kurtschroeder.com/2011/02/10/asp-net-vs-phpwordpress/#comments</comments>
		<pubDate>Thu, 10 Feb 2011 13:46:44 +0000</pubDate>
		<dc:creator>Kurt</dc:creator>
				<category><![CDATA[Entity Framework]]></category>
		<category><![CDATA[MVC]]></category>
		<category><![CDATA[c#]]></category>

		<guid isPermaLink="false">http://kurtschroeder.com/?p=84</guid>
		<description><![CDATA[There are two problems with Dot.Net 1. I love it and i can be a lot of fun coding in. 2. WordPress and php can do just about all of the same thing in about 1/3 the time.]]></description>
			<content:encoded><![CDATA[<p>There are two problems with Dot.Net<br />
1. I love it and i can be a lot of fun coding in.<br />
2. WordPress and php can do just about all of the same thing in about 1/3 the time.</p>
]]></content:encoded>
			<wfw:commentRss>http://kurtschroeder.com/2011/02/10/asp-net-vs-phpwordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>mvc.net force to https trick</title>
		<link>http://kurtschroeder.com/2011/02/05/mvc-net-force-to-https-trick/</link>
		<comments>http://kurtschroeder.com/2011/02/05/mvc-net-force-to-https-trick/#comments</comments>
		<pubDate>Sat, 05 Feb 2011 16:35:08 +0000</pubDate>
		<dc:creator>Kurt</dc:creator>
				<category><![CDATA[MVC]]></category>
		<category><![CDATA[c#]]></category>

		<guid isPermaLink="false">http://kurtschroeder.com/?p=79</guid>
		<description><![CDATA[All you need to do is add the [RequireHttps] attribute to the controller action. If you want to make an entire controller or an entire site do this it can become tedious. 
]]></description>
			<content:encoded><![CDATA[<p><strong>Forcing to ssl/https in a controller action result is quite simple. All you need to do is add the [RequireHttps] attribute to the controller action. If you want to make an entire controller or an entire site do this it can become tedious.<br />
Create a new custom attribute. Mark its target to Class and inheritable.</strong></p>
<p><pre><code>
//#define ssl
using System;
using System.Web.Mvc;
namespace MyNameSpace.Controllers
{
&nbsp;&nbsp;&nbsp;&nbsp;[AttributeUsage(AttributeTargets.Class, Inherited = true)]
&nbsp;&nbsp;&nbsp;&nbsp;internal sealed class InheritableAttribute : Attribute { }
</code></pre></p>
<p><strong>Now create a new class that extends Controller. Mark it Inheritable using that new attribute created above.  This class is empty and its only purpose is to redirect all controller actions to https. Where this becomes handy is during testing on a local development server without ssl. Here I’m using a compiler directive exactly for this purpose. </strong></p>
<p> <pre><code>&nbsp;&nbsp; 
[Inheritable]
#if ssl
&nbsp;&nbsp;&nbsp;&nbsp;[RequireHttps]
#endif
&nbsp;&nbsp;&nbsp;&nbsp;public class ControllerBaseController : Controller {}
}
</code></pre></p>
<p><strong>To apply this to any or all controllers just do the following:</strong><br />
<pre><code>
// dummy controler for dem
// inherit from your newly created BaseController just don’t try and name it BaseControler 
&nbsp;&nbsp;&nbsp;&nbsp;public class CheckOutController : ControllerBaseController
&nbsp;&nbsp;&nbsp;&nbsp;{
// …action 1,2,3. …
&nbsp;&nbsp;&nbsp;&nbsp;}
</code></pre></p>
<p>I hope this helps some one<br />
KES</p>
]]></content:encoded>
			<wfw:commentRss>http://kurtschroeder.com/2011/02/05/mvc-net-force-to-https-trick/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My RESUME WIP</title>
		<link>http://kurtschroeder.com/2011/01/11/my-resume-wip/</link>
		<comments>http://kurtschroeder.com/2011/01/11/my-resume-wip/#comments</comments>
		<pubDate>Tue, 11 Jan 2011 16:43:04 +0000</pubDate>
		<dc:creator>Kurt</dc:creator>
				<category><![CDATA[c#]]></category>

		<guid isPermaLink="false">http://kurtschroeder.com/?p=65</guid>
		<description><![CDATA[KURT SCHROEDER 977 Harris, Rd. #37                                                                              (847) 800-7563 Grayslake, IL 60030                                                                 kurt@kurtSchroeder.com CAREER SUMMARY NOTE: most recent additions and career interests. I am fully committed to the MVC design pattern for websites in combination with Entity Framework. This is not necessarily the same as the MS pattern found in VS2K8/2K10. I tend toward n-Layer projects [...]]]></description>
			<content:encoded><![CDATA[<p><strong>KURT SCHROEDER</strong></p>
<p>977 Harris, Rd. #37                                                                              (847) 800-7563</p>
<p>Grayslake, IL 60030                                                                 <span style="text-decoration: underline;"><a href="mailto:kurt@kurtSchroeder.com">kurt@kurtSchroeder.com</a></span></p>
<p><strong>CAREER SUMMARY</strong></p>
<p><strong>NOTE: most recent additions and career interests.</strong> I am fully committed to the MVC design pattern for websites in combination with Entity Framework. This is not necessarily the same as the MS pattern found in VS2K8/2K10. I tend toward n-Layer projects with a WinForms administrative system. Both the MVC website and the WinForms project are connected to the same Entity FrameWork Project. There are times when a MCF service using JSON or other REST services is the best solution when connecting to JQuery. Over the past year I’ve made just about every mistake and discovered every bug in both MVC and Entity possible. I want to make this clear MVC 2 needs a serious upgrade to 3 ASAP. Entity 4 is not perfect and following a strict Entity pattern can lead to extended development time just to do what a few sp’s can do. I guess this brings me to the next point. I’ve done TSQL for 15+ years and Entity can help things, but after trying to move totally post–relational, I’ve admitted defeat and started focusing on SP for most read only complicated object, especially for items like catalogs.  The MS Web Forms view engine is really not easy for designers. The 3 version will allow for multi-view engines. My preference is Spark, but Razor has potential. I lean toward Spark because it is the most HTML like so far. Asp &lt;% %&gt; is still difficult to understand by designers and it seems Razor is a hybrid more to please back-end developers than designers. I’m developing two projects simultaneously both in Entity4/MVC2/JQUERY/WinForms using the WebForms View Engine. One is integrated with QuickBooks, the other with BusinessWorks. Entity does not support ODBC so I have to rely on an older POCO based n-Layer. This is not a problem for me, however on the MVC side I would have switched both to Spark if it were not so late in the game.  I don’t have a problem at all using the MS View Engine, but I do hear the same complaints from designers I heard when asp was introduced. In spite of my seemingly endless complaints above, I’ll take MVC and Entity over all else even NHibernate.</p>
<p>Results driven web developer with a reputation for providing timely effective solutions based upon clients’ goals, both present and future. Data driven Systems created with equal comfort in Asp.net (cs/vb), Adobe ColdFusion, using data driven.  Design emphasis placed on database and layered systems. 13+ years of web develop development experience. Prior experience includes database administration, WAN administration, C++, RPGII/III/400. Other technologies used during the course of my carrier: php, mySql, COBOL, WinForms. In collaboration with other I have worked on or created over 100 sites. Many site use ecommerce technology.</p>
<p><strong>Projects of Note:</strong></p>
<p><strong>InstituteForInvestors.com</strong> (Investor Education Institute). 2004 to present</p>
<p>This system was designed and created, with market technical help from the site owner, by me alone. It tracks all issues listed on the Amex, NYSE, and Nasdaq. Over 40,000 charts are available within one hour of market data becoming available. Key technical features include automated self correction for errors. Auto de-normalization, small foot print; this site can run on a single server if necessary, but can be, as it is in its present form run on multiple servers. This system was built using asp.net (cs.net/vb.net), ColdFusion (for charts), and MSSqlserver (stored procedures and functions)</p>
<p>Site Function:</p>
<p>This site is a stock market analysis system based on point and figure charting. This system builds on the standard P&amp;F charting method by adding for Stock issues: Logarithmic Charts, Variable Box Charts, 2 and 4 Percent Relative Strength Charts;  for Index, Sector, Market: Ten week Rising in addition to the standard Ten Week Average Chart, Logarithmic Bullish Percent Charts. Custom Reports noting stocks as prospects for buy/sell, and positioning (Short, Long) other charts and reports include Asset Class Allocation, Personal Portfolios. This is an ecommerce Site using PayPal(verisign) services. demonstrated (recommended) upon request.</p>
<p><strong>EverybodySafe.com </strong>(a Trepidus company) 2008-2010.</p>
<p>This site was created by me with UI design help from other team members. Site is written in cs.net and MSSQL Server. EverybodySafe is designed with n-Layers (6) with a focus on expansion to multiple tiers (n-Tier). Currently it is using 2 tiers (Business Logic/Validation, business Entities, Data Access, , UI, Presentation on one tier. Data Base is on Tier 2.</p>
<p>Site Function: EverybodySafe is a personal warning system for individuals. If a member becomes incapacitated an id tag and stickers, carried by the member, can be entered into any internet capable devise in a matter of seconds. The ten character code calls up an image of the person and three alert options, 1. Life Threatening, 2. Non-Life Threatening, 3. I’m OK (to signal the emergency is over or to be used when a natural disaster strikes and a member wants to reassure others). After entering a point of contact hospital phone or other, Email, Text message, and voice phone alerts are sent to predefined individuals and institutions. This is an eCommerce site using Authorize.net web services.</p>
<p><strong>AbrInd.com </strong>(noted here for its longevity)</p>
<p>A cable parts company selling custom cable assemblies. This site is currently being redeveloped in MVC.net. AbrInd has been modified over the years, but had existed in its original form for over 13 years. In the original concept it pre-dated asp (not asp.net). Using a simple custom catalog system the site owner manages most operation without assistance. This site was written in ColdFusion (2.0).</p>
<p><strong> </strong></p>
<p><strong>PROFESSIONAL EXPERIENCE</strong></p>
<p><strong><a href="http://www.iknowtek.com/" target="_blank">I Know Tek, Inc.</a>, Grayslake, IL                                                                 2001 to Present</strong></p>
<p><strong><em>Senior Project Developer</em></strong> <em>- recent projects (list available upon request) </em></p>
<ul>
<li>Develop websites and      AJAX enabled websites using ASP.Net (C# and VB) 1.1-3.5, Adobe ColdFusion,      MS MSSqlserver (6.5-2K8), MSAccess, MySQL, JavaScript, CSS</li>
<li>Create stock market      analysis websites based on point and figure charting.</li>
<li>Create customer      portfolios that help monitor subscriber investments.</li>
<li>Write systems using MS      Sqlserver and Adobe ColdFusion.</li>
<li>Create “Members-only”      websites for business professionals pursuing networking opportunities in      various metropolitan centers.</li>
<li>Create custom dynamic      calendar using DotNet backed by MS Sqlserver, including reminder emails      and a members&#8217; exchange.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://kurtschroeder.com/2011/01/11/my-resume-wip/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DataGridView select row on cell content click</title>
		<link>http://kurtschroeder.com/2010/12/01/datagridview-select-row-on-cell-content-click/</link>
		<comments>http://kurtschroeder.com/2010/12/01/datagridview-select-row-on-cell-content-click/#comments</comments>
		<pubDate>Wed, 01 Dec 2010 16:03:14 +0000</pubDate>
		<dc:creator>Kurt</dc:creator>
				<category><![CDATA[Windows Forms]]></category>
		<category><![CDATA[c#]]></category>

		<guid isPermaLink="false">http://kurtschroeder.com/?p=41</guid>
		<description><![CDATA[select row on cell click]]></description>
			<content:encoded><![CDATA[<p>This is not rocket science, but it is useful for those of us who are simplicity challenged.</p>
<p>q: how do you select a DataGridViewRow when the cell is clicked on.</p>
<p>a: using the cell click (or similar depending on your needs) add this general method</p>
<p><span style="font-family: Consolas; color: #0000ff; font-size: x-small;"><span style="font-family: Consolas; color: #0000ff; font-size: x-small;"><span style="font-family: Consolas; color: #0000ff; font-size: x-small;">private </span></span></span></p>
<p>void<span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> dvg_CellClick(</span></span><span style="font-family: Consolas; color: #0000ff; font-size: x-small;"><span style="font-family: Consolas; color: #0000ff; font-size: x-small;"><span style="font-family: Consolas; color: #0000ff; font-size: x-small;">object</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> sender, </span></span><span style="font-family: Consolas; color: #2b91af; font-size: x-small;"><span style="font-family: Consolas; color: #2b91af; font-size: x-small;"><span style="font-family: Consolas; color: #2b91af; font-size: x-small;">DataGridViewCellEventArgs</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> e)</span></span></p>
<p>{</p>
<p><span style="font-family: Consolas; color: #0000ff; font-size: x-small;"><span style="font-family: Consolas; color: #0000ff; font-size: x-small;"><span style="font-family: Consolas; color: #0000ff; font-size: x-small;"><span style="font-family: Consolas; color: #0000ff; font-size: x-small;"><span style="font-family: Consolas; color: #0000ff; font-size: x-small;"><span style="font-family: Consolas; color: #0000ff; font-size: x-small;">if</span></span></span></span></span></span></p>
<p><span style="font-family: Consolas; color: #0000ff; font-size: x-small;"><span style="font-family: Consolas; color: #0000ff; font-size: x-small;"><span style="font-family: Consolas; color: #0000ff; font-size: x-small;"> </span></span></span></p>
<p><span style="font-family: Consolas; color: #0000ff; font-size: x-small;"><span style="font-family: Consolas; color: #0000ff; font-size: x-small;"> </span></span></p>
<p><span style="font-family: Consolas; color: #0000ff; font-size: x-small;"><span style="font-family: Consolas; color: #0000ff; font-size: x-small;"> </span></span></p>
<p><span style="font-family: Consolas; color: #0000ff; font-size: x-small;"> </span></p>
<p><span style="font-family: Consolas; color: #0000ff; font-size: x-small;"> </span></p>
<p><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"><span style="color: #000000;"> (e.RowIndex &gt; -1) </span></span></span></p>
<p><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"><span style="color: #000000;">{</span></span></span></p>
<p><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> </span></span></span></span></p>
<p><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> </span></span></p>
<p><span style="font-family: Consolas; font-size: x-small;"> </span></p>
<p><span style="font-family: Consolas; font-size: x-small;"> </span></p>
<p><span style="font-family: Consolas; color: #0000ff; font-size: x-small;"><span style="font-family: Consolas; color: #0000ff; font-size: x-small;"><span style="font-family: Consolas; color: #0000ff; font-size: x-small;">var</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> dgv = (</span></span><span style="font-family: Consolas; color: #2b91af; font-size: x-small;"><span style="font-family: Consolas; color: #2b91af; font-size: x-small;"><span style="font-family: Consolas; color: #2b91af; font-size: x-small;">DataGridView</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">) sender;<span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">dgv.Rows[e.RowIndex].Selected =</span></span></span></span></p>
<p><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> </span></span></p>
<p><span style="font-family: Consolas; font-size: x-small;"> </span></p>
<p><span style="font-family: Consolas; font-size: x-small;"> </span></p>
<p><span style="font-family: Consolas; color: #0000ff; font-size: x-small;"><span style="font-family: Consolas; color: #0000ff; font-size: x-small;"><span style="font-family: Consolas; color: #0000ff; font-size: x-small;">true</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">;</span></span></p>
<p><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"><span style="color: #000000;">}</span></span></span></p>
<p><span style="font-family: Consolas; color: #0000ff; font-size: x-small;"><span style="font-family: Consolas; color: #0000ff; font-size: x-small;"><span style="font-family: Consolas; color: #0000ff; font-size: x-small;">}</span></span></span></p>
<p><span style="font-family: Consolas; color: #0000ff; font-size: x-small;"><span style="font-family: Consolas; color: #0000ff; font-size: x-small;"><span style="font-family: Consolas; color: #0000ff; font-size: x-small;"> </span></span></span></p>
]]></content:encoded>
			<wfw:commentRss>http://kurtschroeder.com/2010/12/01/datagridview-select-row-on-cell-content-click/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Render to Ceasar &#8230; Render to Emails your Views</title>
		<link>http://kurtschroeder.com/2010/11/30/render-to-ceasar-render-to-emails-your-views/</link>
		<comments>http://kurtschroeder.com/2010/11/30/render-to-ceasar-render-to-emails-your-views/#comments</comments>
		<pubDate>Tue, 30 Nov 2010 19:39:51 +0000</pubDate>
		<dc:creator>Kurt</dc:creator>
				<category><![CDATA[MVC]]></category>
		<category><![CDATA[c#]]></category>

		<guid isPermaLink="false">http://kurtschroeder.com/?p=38</guid>
		<description><![CDATA[send an email or what ever using an existing view rendered tostring.]]></description>
			<content:encoded><![CDATA[<p>Simple and to the point. This just plain works. If you ever wanted to send an email receipt using an existing (partial) view for the message body. This is it.</p>
<p><a href="http://msug.vn.ua/blogs/bobasoft/archive/2010/01/07/render-partialview-to-string-asp-net-mvc.aspx">http://msug.vn.ua/blogs/bobasoft/archive/2010/01/07/render-partialview-to-string-asp-net-mvc.aspx</a></p>
<p>Don&#8217;t expect all the additional advice that you already know about.</p>
]]></content:encoded>
			<wfw:commentRss>http://kurtschroeder.com/2010/11/30/render-to-ceasar-render-to-emails-your-views/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>At the work place #1</title>
		<link>http://kurtschroeder.com/2010/11/21/at-the-work-place-1/</link>
		<comments>http://kurtschroeder.com/2010/11/21/at-the-work-place-1/#comments</comments>
		<pubDate>Sun, 21 Nov 2010 16:56:57 +0000</pubDate>
		<dc:creator>Kurt</dc:creator>
				<category><![CDATA[Strange Bizarre And Totally True]]></category>
		<category><![CDATA[c#]]></category>

		<guid isPermaLink="false">http://kurtschroeder.com/?p=29</guid>
		<description><![CDATA[Before i got fired the one and only time in my life:  My two genius bosses configured a virtual server with 512Mb and were planning to run W2K3, IIS, and sql 2003. I told them at least three times they should consider upping it to 1Gb. I had experience with this, made the same error, [...]]]></description>
			<content:encoded><![CDATA[<p>Before i got fired the one and only time in my life:  My two genius bosses configured a virtual server with 512Mb and were planning to run W2K3, IIS, and sql 2003. I told them at least three times they should consider upping it to 1Gb. I had experience with this, made the same error, and learned from it.</p>
<p>Using ‘Like’ in a query is never good practice, but sometimes it&#8217;s unavoidable. This was the case on a join with two tables each containing about 200 records each. They came from difference db&#8217;s. This was a one shot query for data checking only. The query, run in SMS, took 24 seconds. I said, &#8220;guys, we have a problem&#8221;. Rather than admit he made a simple error or at least try adding the extra memory i was told the reason was my use of Like in the query. I was totally shocked and expressed my disbelief at what i just heard. I argued with him. I&#8217;m not prone to argument, but this was a huge exception and well warranted! The next day ‘Boss#1’, #1 for short (you got kids? Think about it), publicly reprimanded me not for arguing, but for not accepting #2’s #2 type answer. As I said, I am not prone to arguing and I will not waste my time and emotions on a futile shouting match with an obvious outcome. I came to this conclusion when I opened my mouth to suggest a “possible” reason, and was all but told loudly to shut up and then loudly told, “No <em>#2 </em>said you are wrong.  Kurt, don’t talk, I, #1, say YOU ARE WRONG! And “THE” #2 said YOU ARE WRONG” We will never know if I was right, #2 was right, or if we were both wrong because the physical server hosting the VM died due to a hardware failure on the following Monday. For all I know the guy took a degaussing magnet to the server. I sincerely do not believe this, but for the first time in my life, with 12 years of SQL experience mostly doing complicated queries on stock market data I was just publicly reprimanded for not accepting the conclusions of #2. After that I was ready to believe anything was possible from #1 and #2. Here is an interesting side note they both forgot. I had worked there about 2 years earlier (I was asked to come back by #1) and they both were talking about “Update Joins” not being possible. The concept of aliasing a table was considered confusing and bad practice by them at that time, so of course they couldn’t do it. In less than 1 minute I showed them both how it was done by giving them an example.</p>
]]></content:encoded>
			<wfw:commentRss>http://kurtschroeder.com/2010/11/21/at-the-work-place-1/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>As a Developer Here’s Where i’m At</title>
		<link>http://kurtschroeder.com/2010/11/09/as-a-developer-heres-where-im-at/</link>
		<comments>http://kurtschroeder.com/2010/11/09/as-a-developer-heres-where-im-at/#comments</comments>
		<pubDate>Tue, 09 Nov 2010 17:49:22 +0000</pubDate>
		<dc:creator>Kurt</dc:creator>
				<category><![CDATA[c#]]></category>
		<category><![CDATA[ASP]]></category>
		<category><![CDATA[c# Entity FrameWork]]></category>
		<category><![CDATA[MVC]]></category>

		<guid isPermaLink="false">http://kurtschroeder.com/2010/11/09/as-a-developer-heres-where-im-at/</guid>
		<description><![CDATA[The magic words for me are MVC, Entity Framework, and n-Tier!!. I&#8217;ve done some work with NHibernate (it&#8217;s good, but has some kinks i never quite got over), but Entity Frame Work 4.0 seems the place where MS hit it on the head. I may be down playing my tsql skills here, but I&#8217;m just [...]]]></description>
			<content:encoded><![CDATA[<p>The magic words for me are MVC, Entity Framework, and n-Tier!!. I&#8217;ve done some work with NHibernate (it&#8217;s good, but has some kinks i never quite got over), but Entity Frame Work 4.0 seems the place where MS hit it on the head. I may be down playing my tsql skills here, but I&#8217;m just a big fan of the post-relational trend. Do not misinterpret this to mean sql is out of the picture. I&#8217;m still doing views and stored procedures for most data operations, but the model-first pattern is the way to go. It&#8217;s the sensible place to start.<br />
OK to the practical. Here’s what I believe:  I learned n-Tier/n-Layer concepts using a process developed by http://imar.spaanjaars.com. His system is a great first start for anyone learning the concepts. It is all raw c# and POCO’s. All the code is there. If you are like me you can understand the frustration of not seeing the whole picture. If you have to use a third part library without explanation in a learning environment, not talking production here, it is harder to “get it”, Imar’s   does not nor does it claim to work well in a multi-tiered environment. It works well, but if it has done its job,  you find yourself seeing the rest of the world. I still use it, but it brought me to the point where I could understand the popular frameworks and the like. At that point I was able to move on to understanding Tiers, most importantly when NOT to use them.<br />
My newer projects are all model first. In a team environment it&#8217;s a place where most of us have common ground. We are all have to deal with Visual Studio at least at some point during the development process. By starting here we can all see it and contribute to it before the Database guys decide the correct design based on their current understanding of the project. Likewise the first unit tests can be developed here using a NUnit with Moq or whatever to detach dependency on the Data guys so they don’t have to keep adding and dropping fields, generating test data, adding/dropping cascading deletes, dependencies, constraints, etc. This section, the mock/unit testis can be easy, but it is not always quick. It’s tough to justify the time involved, but you can at least point out that the data guys have not been complaining much recently!   The “final” Model will and always will be changed later (End of Story!). However, the cool part is you can push this model to the data server after getting approval from the data guys. Again less work for the data guys/girls.<br />
On the rest of the layers: in an MVC project it is by design already layered, but not exactly the way I’d like. I tend to separate the model as noted above into its own project. To access the model I prefer a quasi-service layer or a service layer/business rules layer. This can be over kill on a small system, but it opens up possibilities.  This layer is what provides the MVC controllers, web services, and Windows Forms apps their data insuring they all play by the rules before they get anything. It is also the place where DTO’s can be used instead of the actual model. OK, look, here’s the deal: You have a small site? It’s time to lose your fundamentalism. Strongly typed views are scandalous in some circles, but they work great and fast to create, and most of all, you don’t need the specialist middle layer or db layer to use them. In other words they are just plain easy and are safe if the Business layers done right. However, there is nothing wrong with using DTO’s. Not only that, you can still get strongly typed views just not directly to the model. It is work the Business layer guys/girls are doing anyway. I mean they would argue the strong typing breaks separation so they’d be setting the values here and passing to the mode they care how it gets to them. They just care that all of it gets to them and no one else! Ergo, create DTO’s that can be strongly type for the UI guys. They call the same SaveChanges(), AddObject(), ect just not on the real model. You can use POCOS, create a DTO model and intercept the methods. Whatever, the point is can be done. You can get the best of both worlds and you can Tier the thing without having to use the “real” model on the receiving end. As far as the UI (Service, windows forms, MVC, asp.net classic, etc. is concerned this is the real model and in their universe it is the only model. To them it is a mystery what really happened when their objects go to the great beyond. They just have to have faith that their objects will be taken of in the “hear after” in the same way objects arrive.<br />
I’ll end here. I’ve not covered JSON, or just using a REST service directly, but I think you get the idea of what I’m like as a developer.<br />
Languages and platforms : c#, vb.net, asp.net, mvc.net, ColdFusion, SQLServer, QuickBooks, Business Works, JQuery, and a little extJS, PHP, NHibernate.<br />
Extra note: I have a lot of experience creating analysis and charting systems for the Stock Market including ETF’s, forecasting, portfolio management.</p>
<p>Thank You</p>
]]></content:encoded>
			<wfw:commentRss>http://kurtschroeder.com/2010/11/09/as-a-developer-heres-where-im-at/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Great article for using a Stored Procedure to &#8220;select&#8221; In Entity Frame Work</title>
		<link>http://kurtschroeder.com/2010/11/06/great-article-for-using-a-stored-procedure-to-select-in-entity-frame-work/</link>
		<comments>http://kurtschroeder.com/2010/11/06/great-article-for-using-a-stored-procedure-to-select-in-entity-frame-work/#comments</comments>
		<pubDate>Sat, 06 Nov 2010 15:21:36 +0000</pubDate>
		<dc:creator>Kurt</dc:creator>
				<category><![CDATA[c#]]></category>

		<guid isPermaLink="false">http://kurtschroeder.com/?p=23</guid>
		<description><![CDATA[Great article for using a Stored Procedure to &#8220;select&#8221; In Entity Frame Work]]></description>
			<content:encoded><![CDATA[<p><a class="aligncenter" title="Entity" href="http://beyondrelational.com/blogs/jalpesh/archive/2010/08/18/entity-framework-4-0-bind-stored-procedure-with-result-entity-class.aspx" target="_blank">Great article for using a Stored Procedure to &#8220;select&#8221; In Entity Frame Work</a></p>
]]></content:encoded>
			<wfw:commentRss>http://kurtschroeder.com/2010/11/06/great-article-for-using-a-stored-procedure-to-select-in-entity-frame-work/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>For those other Entity Frame work Web types that are stuck doing a Windows Forms App.</title>
		<link>http://kurtschroeder.com/2010/11/06/for-those-other-entity-frame-work-web-types-that-are-stuck-doing-a-windows-forms-app/</link>
		<comments>http://kurtschroeder.com/2010/11/06/for-those-other-entity-frame-work-web-types-that-are-stuck-doing-a-windows-forms-app/#comments</comments>
		<pubDate>Sat, 06 Nov 2010 14:46:37 +0000</pubDate>
		<dc:creator>Kurt</dc:creator>
				<category><![CDATA[Entity Framework]]></category>
		<category><![CDATA[c#]]></category>

		<guid isPermaLink="false">http://kurtschroeder.com/?p=20</guid>
		<description><![CDATA[Using  Entity Frame Work for a data layer in a Windows Forms  DataGridView. How do you delete? You need to add an event for KeyDown.  Me, being a total web type and mostly MVC these days, I was about to write a handler and event. Well, no need. private void dgvSubCats_KeyDown(object sender, KeyEventArgs e) { [...]]]></description>
			<content:encoded><![CDATA[<p>Using  Entity Frame Work for a data layer in a Windows Forms  DataGridView. How do you delete?</p>
<p>You need to add an event for KeyDown.  Me, being a total web type and mostly MVC these days, I was about to write a handler and event. Well, no need.</p>
<div id="_mcePaste">private void dgvSubCats_KeyDown(object sender, KeyEventArgs e)</div>
<div id="_mcePaste">{</div>
<div id="_mcePaste">if (e.KeyCode == Keys.Delete)</div>
<div id="_mcePaste">{</div>
<div id="_mcePaste">for (int i = 0; i &lt; dgvSubCats.SelectedRows.Count; i++)  // i &#8216;m going to add IEnumeriable to DataGridViewRows collection some day.</div>
<div id="_mcePaste">{</div>
<div id="_mcePaste">Int32 Id = Int32.Parse(dgvSubCats.SelectedRows[i].Cells["productSubGroupIdDataGridViewTextBoxColumn"].Value.ToString());</div>
<div id="_mcePaste">var sc = (from m in context.ProductSubGroups where m.ProductSubGroupId== Id select m).FirstOrDefault();</div>
<div id="_mcePaste">context.ProductSubGroups.DeleteObject(sc);</div>
<div id="_mcePaste">}</div>
<div id="_mcePaste">context.SaveChanges();</div>
<div id="_mcePaste">ReloadSubCatGrid();</div>
<div id="_mcePaste">}</div>
<div id="_mcePaste">}</div>
<p>Because its intuitive and easy, I have a hard time with Windows Forms. It&#8217;s way too designer centric for web types.</p>
<p>KES</p>
]]></content:encoded>
			<wfw:commentRss>http://kurtschroeder.com/2010/11/06/for-those-other-entity-frame-work-web-types-that-are-stuck-doing-a-windows-forms-app/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>POCO&#8217;s</title>
		<link>http://kurtschroeder.com/2010/10/29/pocos/</link>
		<comments>http://kurtschroeder.com/2010/10/29/pocos/#comments</comments>
		<pubDate>Fri, 29 Oct 2010 17:39:07 +0000</pubDate>
		<dc:creator>Kurt</dc:creator>
				<category><![CDATA[c#]]></category>

		<guid isPermaLink="false">http://kurtschroeder.com/?p=17</guid>
		<description><![CDATA[No matter what new framework i use, what new &#8220;next best tech&#8221; i always seem to come back to POCO&#8217;s]]></description>
			<content:encoded><![CDATA[<p>No matter what new framework i use, what new &#8220;next best tech&#8221; i always seem to come back to POCO&#8217;s</p>
]]></content:encoded>
			<wfw:commentRss>http://kurtschroeder.com/2010/10/29/pocos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

