<?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>Kernelemente Applications</title>
	<atom:link href="http://www.kernelemente.com/applications/Index.php?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://www.kernelemente.com/applications</link>
	<description>Applications In ASP.net And SQL Server</description>
	<lastBuildDate>Sun, 27 Mar 2011 17:19:52 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1</generator>
		<item>
		<title>Kernelemente Offers an Express Edition of the IIS Web Server</title>
		<link>http://www.kernelemente.com/applications/?p=255</link>
		<comments>http://www.kernelemente.com/applications/?p=255#comments</comments>
		<pubDate>Sun, 27 Mar 2011 17:15:54 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ASP.net Applications]]></category>
		<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://www.kernelemente.com/applications/?p=255</guid>
		<description><![CDATA[The tools for Microsoft web developers are getting better and better these days, we&#8217;ve seen that with the SharePoint 2010 tools for Visual Studio 2010. But Microsoft is now also coming out with a new web server to support all ASP.NET developers: IIS Express. Life Before IIS Express If you are an ASP.NET developer, you have two]]></description>
			<content:encoded><![CDATA[<p>The tools for Microsoft web developers are getting better and better these days, we&#8217;ve seen that with the SharePoint 2010 tools for Visual Studio 2010. But Microsoft is now also coming out with a new web server to support all ASP.NET developers: <strong>IIS Express</strong>.</p>
<p>Life Before IIS Express</p>
<p>If you are an <a href="http://www.cmswire.com/news/topic/asp+net">ASP.NET</a> developer, you have two options for testing your sites against a web server prior to IIS Express:</p>
<ul>
<li><a href="http://www.cmswire.com/news/topic/iis">IIS Web Server</a> — the one that comes with Windows</li>
<li>Visual Studio&#8217;s built in ASP Development Web Server</li>
</ul>
<p>There&#8217;s nothing really wrong with either one, but as a web developer your needs may actually cross the capabilities of the two put together.</p>
<p>As Scott Gu says on his blog <a href="http://weblogs.asp.net/scottgu/archive/2010/06/28/introducing-iis-express.aspx">introducing the new Express version of IIS</a>, many developers have said: &#8220;I wish I could have the ease of use of the ASP.NET Development Server, but still have all the power and features of IIS.&#8221;</p>
<p>And this is what IIS Express does, combines the best of both web servers into one that is free and works with both<a href="http://www.cmswire.com/news/topic/visual+studio+2010">Visual Studio 2010</a> and Visual Web Developer Express 2010.</p>
<h2>IIS Express</h2>
<p>The ASP Development Server does not support the full capabilities of the IIS Web Server, but getting your IT department to let you install and run the IIS Web Server on your desktop could be an exercise in futility as it could be considered a potential security problem.</p>
<p>Now you can have a web server that is easy to setup and install, won&#8217;t freak out the IT department and offers a full set of IIS web server functionality.  A few other nice features:</p>
<ul>
<li>It doesn&#8217;t require an Admin account to run and debug applications from Visual Studio</li>
<li>It can be installed side-by-side with either the IIS Web Server or the ASP Development Server</li>
<li>It works with Windows XP and up</li>
</ul>
<p><img src="http://www.cmswire.com/images/IISExpress.jpg" alt="IISExpress.jpg" width="522" height="389" /><br />
<em>IIS Express</em></p>
<p>Gu says that IIS Express will be configured to run with Visual Studio 2010 as an alternative web server. So you won&#8217;t have to configure it to run your websites, just hit F5 and go.</p>
<p>A public beta is expected sometime soon and a patch for both Visual Studio 2010 and Visual Web Developer Express 2010 will come at the end of the year that support IIS Express.</p>
<p>My first thought when I read about this new web server, was that many IT organizations are going to be happy. They can now provide their development teams with strong Web Server capabilities without opening the door to potential security breaches.</p>
<p>My second thought, will it have all the nice add-on capabilities that IIS 7 offers like the SEO toolkit and the Media Services?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kernelemente.com/applications/?feed=rss2&#038;p=255</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Kernelemente ASP.net CMS: A Focus on the Essentials and Improved Developer Productivity</title>
		<link>http://www.kernelemente.com/applications/?p=253</link>
		<comments>http://www.kernelemente.com/applications/?p=253#comments</comments>
		<pubDate>Sun, 27 Mar 2011 17:13:33 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ASP.net Applications]]></category>
		<category><![CDATA[ASP.net and SQL Server]]></category>
		<category><![CDATA[ASP.net Custom CMS]]></category>
		<category><![CDATA[dot net content Management systems]]></category>

		<guid isPermaLink="false">http://www.kernelemente.com/applications/?p=253</guid>
		<description><![CDATA[Telerik (news, site) has officially launched the latest version of its web content management system, Sitefinity, today. With a completely redesigned architecture, there are a number of improvements, not the least of which include advanced workflow and new e-Commerce capabilities. A Redesigned Web CMS for Everyone Martin Kirov, executive vice president of Sitefinity at Telerik told us that for the last]]></description>
			<content:encoded><![CDATA[<p>Telerik (<a href="http://www.cmswire.com/news/topic/telerik">news</a>, <a href="http://www.telerik.com/">site</a>) has officially launched the latest version of its web content management system, Sitefinity, today. With a completely redesigned architecture, there are a number of improvements, not the least of which include advanced workflow and new e-Commerce capabilities.</p>
<p>A Redesigned Web CMS for Everyone</p>
<p>Martin Kirov, executive vice president of Sitefinity at Telerik told us that for the last two years, Telerik has had the biggest team working on Telerik Sitefinity 4.0. Completely rebuilt from the ground up, the latest version of this <a href="http://www.cmswire.com/cms/web-cms/">Web CMS</a> was designed to increase developer productivity (and in turn the ability to easily develop 3rd party components), and to provide the business user with a user experience that is focused on the essentials.</p>
<h2>Task Oriented UX</h2>
<p>The back-end — or administration/editorial — user experience in Sitefinity 4.0 has been streamlined, and new capabilities have been added to allow making changes without the need for a developer.</p>
<p>Editorial improvements are plenty in this new release, including:</p>
<ul>
<li>A new Forms Module which allows administrators to create forms via a drag and drop approach.</li>
<li>An integrated <a href="http://www.cmswire.com/news/topic/analytics">web analytics</a>module.</li>
</ul>
<p>Some of the administration improvements include:</p>
<ul>
<li>A new installation and upgrade process.</li>
<li>Site configuration is now exposed via the UI and stored in XML files instead of config files.</li>
<li>Store different configurations, or policies, for users, locations, roles.</li>
<li>Change the language of buttons and labels.</li>
<li>Admin Pages can be customized in a similar manner as front-end website pages. For example, a custom field can be added to store specific metadata information. This is done via a drag and drop experience.</li>
<li>Permissions can be set on a content items or element on a page where it used to be set per page/module.</li>
<li>The platform is now compliant with <a href="http://www.cmswire.com/news/topic/accessibility">Section 508 and the WCAG 2.0</a>.</li>
</ul>
<p>Here&#8217;s an overview video of Telerik Sitefinity 4.0:</p>
<p><object id="viddler" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="437" height="265"><param name="_cx" value="5080" /><param name="_cy" value="5080" /><param name="FlashVars" /><param name="Movie" /><param name="Src" /><param name="WMode" value="Window" /><param name="Play" value="-1" /><param name="Loop" value="-1" /><param name="Quality" value="High" /><param name="SAlign" /><param name="Menu" value="-1" /><param name="Base" /><param name="AllowScriptAccess" /><param name="Scale" value="ShowAll" /><param name="DeviceFont" value="0" /><param name="EmbedMovie" value="0" /><param name="BGColor" /><param name="SWRemote" /><param name="MovieData" /><param name="SeamlessTabbing" value="1" /><param name="Profile" value="0" /><param name="ProfileAddress" /><param name="ProfilePort" value="0" /><param name="AllowNetworking" value="all" /><param name="AllowFullScreen" value="false" /><embed type="application/x-shockwave-flash" width="437" height="265" src="http://www.viddler.com/simple_on_site/b1d11f09" flashvars="fake=1" allowfullscreen="true" allowscriptaccess="always" name="viddler"></embed></object></p>
<h2>New e-Commerce Functionality</h2>
<p>Telerik acquired their <a href="http://www.cmswire.com/news/topic/e-commerce">e-Commerce capabilities</a> for 4.0 with the acquisition of Mallsoft. Mallsoft, a former Telerik partner, is a small 5-6 employee shop that built custom shopping cart technologies.</p>
<p>That functionality is in the process of being fully integrated with the Telerik Web CMS and all the employees are part of either the Telerik&#8217;s West Coast office in San Diego or the Development team in Bulgaria.</p>
<h2>Extensibility a Key Element</h2>
<p>One of the main reasons for the complete redesign of the Telerik Web CMS was, as I said earlier, to increase developer productivity, not just for Telerik developers, but for partners that create third party components for the Web CMS.</p>
<p>Probably one of the biggest enhancements is the ability to create custom workflows in<a href="http://www.cmswire.com/news/topic/visual+studio">Visual Studio</a> (WWF integration) that support just about any defined business process. We were told that a custom workflow designer is in the works. Also, a new Widget Template editor provides improved widget controls layout and output modifications. There&#8217;s a good blog post on the Telerik website that gives you a look into the <a href="http://www.sitefinity.com/blogs/ivan/posts/10-11-19/sitefinity_4_0_rc_deep_dive_workflow.aspx">advanced workflow capability</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kernelemente.com/applications/?feed=rss2&#038;p=253</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Kernelemente MonoX ASP.net Content Management And Social Networking Platform</title>
		<link>http://www.kernelemente.com/applications/?p=248</link>
		<comments>http://www.kernelemente.com/applications/?p=248#comments</comments>
		<pubDate>Wed, 18 Aug 2010 15:08:23 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ASP.net Applications]]></category>

		<guid isPermaLink="false">http://www.kernelemente.com/applications/?p=248</guid>
		<description><![CDATA[Inspired by the latest Web technologies and built on top of the Web parts infrastructure, MonoX allows you to design and develop next generation ASP.NET Web portals and applications. It features an intuitive, user-friendly user interface that supports Web parts framework, drag and drop, WYSIWYG interface, content versioning, advanced security model, cross-browser support, advanced templating]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Inspired by the latest Web technologies and built on top of the Web parts  infrastructure, <a href="http://monox.mono-software.com/" target="_blank">MonoX</a> allows you to design and develop next generation ASP.NET  Web portals and applications. It features an intuitive, user-friendly user  interface that supports Web parts framework, drag and drop, WYSIWYG interface,  content versioning, advanced security model, cross-browser support, advanced  templating engine and multi-level personalization. MonoX comes with everything you need to build fully-featured social  environments, including: user profiles, OpenID support, friendship modules,  scalable multi-user blog engine with automatic anti-spam protection, photo  albums, customizable group architecture with support for public and private  groups, discussion boards, file galleries, support for activity streams (event  logs), messaging, video conversion and sharing, wall and comments.</p>
<h3 style="text-align: justify;">Technical Features</h3>
<ul style="text-align: justify;">
<li><strong>Full support for the <a href="http://msdn.microsoft.com/en-us/library/e0s9t4ck.aspx" target="_blank">ASP.NET Web Parts Framework</a></strong><br />
Web Parts Framework  includes a set of controls and services that specifically target the growing  demand for Web portal creation, including support for personalization,  membership, communication and other infrastructural tasks. MonoX is built on top  of the standard Web Part API.</li>
<li><strong>Commitment to standards</strong><br />
MonoX renders XHTML compliant  code and enables users to develop fully standards-compliant portals that will  work reliably on different platforms.</li>
<li><strong>Unlimited design flexibility</strong><br />
Developers can create user  interface templates without any limitations, using their favorite approach  (tables, DIVs, CSS, &#8230;). ASP.NET master pages, themes and templates are fully  supported.</li>
<li><strong>Open API</strong><br />
MonoX allows developers to access all of its  back-end functionality through a comprehensive set of fully documented methods  and events.</li>
<li><strong><a href="http://msdn.microsoft.com/en-us/library/aa479030.aspx" target="_blank">Provider-based</a> architecture</strong><br />
An ASP.NET provider is  a software module that provides a uniform interface between a service and a data  source. Providers abstract physical storage media, in much the same way that  device drivers abstract physical hardware devices. MonoX uses the provider model  extensively, making it easy to add new functionality and interface with other  ASP.NET applications.</li>
<li><strong>Support for localization</strong><br />
All content and user interface  elements can be localized at run time using only browser-based administrative  tools. In addition to the standard .NET localization infrastructure, MonoX can  store all localization resources in a portal database.</li>
<li><strong>Advanced module communication</strong><br />
Developers can design  sophisticated and elaborate Web part communication scenarios using the module  communication support.</li>
<li><strong>Development flexibility</strong><br />
All MonoX Web parts are in  essence standard ASP.NET user controls. This allows developers to leverage their  experience without the need to learn about new APIs and development  environments. Controls are registered with the portal just by placing them in  the module gallery folder. Additionally, there is an actual underlying file for  each page, making it easy to customize the behavior of each portal page just  like it is an ordinary ASPX page.</li>
<li><strong>Multi-portal environments</strong><br />
Unlimited number of portals  can be served from a single portal database.</li>
<li><strong>Advanced personalization infrastructure</strong><br />
MonoX builds  upon the personalization system that is integrated into ASP.NET 2.0, enabling  users to personalize their working environment on both user and shared levels.</li>
</ul>
<h3 style="text-align: justify;">Content Management Features</h3>
<ul style="text-align: justify;">
<li><strong>Browser-based administration</strong><br />
All aspects of a portal can  be managed through an online, browser-based interface.</li>
<li><strong>User friendly Web 2.0 interface</strong><br />
MonoX provides modern  and uncluttered Ajax-based user interface with intuitive look and feel. Web  parts can be moved and edited using a convinient drag and drop interface.</li>
<li><strong>WYSIWYG approach</strong><br />
A unique editor interface allows  administrators to enter and update content &#8220;in-place&#8221; and to immediatelly see  the results of their actions.</li>
<li><strong>Windows Live Writer support</strong><br />
Microsoft Windows Live  Writer is a free desktop application that makes it easier to compose compelling  blog posts using numerous blog services. It features true offline WYSIWYG blog  authoring and photo/map publishing. MonoX fully supports Windows Live Writer and  other similar editing tools that recognize standard MetaWeblog API, not only for  the blog publishing tasks, but also for more general portal editing and  configuration actions.</li>
<li><strong>Content versioning</strong><br />
All changes made on a portal page can  be saved for later approval and publishing.</li>
<li><strong>RSS feed providers</strong><br />
All content-based modules (HTML  editor, news system) can automatically provide RSS feeds.</li>
<li><strong>Search Engine Optimization (SEO)</strong><br />
MonoX includes powerful  Search Engine Optimization (SEO) techniques that can help users place their  portals very high on all major search engines: ViewState optimization, URL  rewriting, HTTP compression, SiteMap generation, automatic META keywords  generation, integration with Google Analytics, compact and standards-compliant  output&#8230;</li>
<li><strong>Search infrastructure</strong><br />
MonoX comes with numerous search  providers that give you a total control over the portal search engine behavior  and performance. Included are providers that search pages, news, blog posts,  groups, user profiles and file system.</li>
<li><strong>Cloud data providers</strong><br />
MonoX now includes a data provider  that hooks into <a href="http://aws.amazon.com/s3/" target="_blank">Amazon S3</a>,  allowing users to store their data in the cloud and not on a local database or  file servers.</li>
</ul>
<h3 style="text-align: justify;">Social Networking Features</h3>
<ul style="text-align: justify;">
<li><strong>User profiles</strong><br />
Profiles are often used as a point of  contact betwen users, and MonoX provides flexible architecture and modules to  publish information about its users in a convinient way, respecting their  privacy settings. You can choose between <a href="http://www.gravatar.com/" target="_blank">Gravatar</a> service and local avatar repository to attach  personal photos to profiles.</li>
<li><strong>Support for OpenID and RPX</strong><br />
OpenID allows you to log-in  to MonoX-based portals and applications without performing the time consuming  registration process and remembering your credentials. <a href="http://aws.amazon.com/s3/" target="_blank">RPX</a> goes even further by  integrating major online services, so you will be able to log in by using your  credentials from Facebook, LinkedIn, MySpace and other major social networking  systems.</li>
<li><strong>Friendship modules</strong><br />
Different terms describe the  &#8220;friendship&#8221; or &#8220;connection&#8221; concept for different community types, but in all  cases it is the fundamental feature of all social networks. MonoX provides a  flexible set of modules for displaying and managing user friend lists.</li>
<li><strong>Blog engine</strong><br />
MonoX now includes a fully featured  multi-user blog engine with support for comments, ratings, tagging and automatic  anti-spam protection. Each user can have unlimited number of blogs, blog posts,  tags and categories.</li>
<li><strong>Photo albums</strong><br />
Each portal user can upload and organize  photos using the album infrastructure. Thumbnails for common image file types  are generated on the fly and stored on the server.</li>
<li><strong>Groups</strong><br />
Groups allow users of your community to interact  with each other around a common topic. Modules such as walls, forums, albums,  file galleries can all be utilized in the group context.</li>
<li><strong>Discussion boards</strong><br />
MonoX discussion boards allow users to  easily post messages and comments to the community in a way that all the  responses will be viewable no matter how much time passes between each post.</li>
<li><strong>Media galleries</strong><br />
Many social networking sites are very  dependant upon media galleries, as they could draw the large percentage of  visitors back to the site. MonoX support a generic architecture that allows you  to host videos, photos, resumes, or any other kind of physical files.</li>
<li><strong>Activity streams</strong><br />
Users can track the activity of their  friends and be instantly notified when somebody publishes an interesting blog  post, uploads a photo, joins the community&#8230;</li>
<li><strong>Messaging</strong><br />
Messaging is essential to all community sites  as it allows users to communicate with each another (or a whole group) directly,  resembling the look and feel of traditional mail clients.</li>
<li><strong>Video conversion and sharing</strong><br />
In addition to standard  media gallery functionality, MonoX supports third-party plug-ins for video  conversion that allow users to upload any kind of video material and have it  coverted to standard Flash formats.</li>
<li><strong>Walls</strong><br />
Wall is a kind of virtual space on every user&#8217;s  profile or group page that allows friends to post messages for other users to  see. In essence, this is usually the central gathering point for all users of a  community.</li>
<li><strong>Comments</strong><br />
Comment modules allow your users to interact  with the content and other members of your social network. Our flexible  infrastructure enables administrators to attach comments to virtually any kind  of content: wall notes, blog posts, images, etc.</li>
<li><strong>Ratings</strong><br />
Ratings can be a very important part of any  community-based content site. They allow the whole community to be in charge of  what content takes precedence on the site.</li>
<li><strong>Tags</strong><br />
Similar to comments and ratings, tags can be  attached to different types of content, allowing users to build an independant  form of navigation and/or categorization.</li>
</ul>
<h3 style="text-align: justify;">Other Built-in Web Parts</h3>
<ul style="text-align: justify;">
<li><strong>Advertisments</strong><br />
Allows users to set up and serve unlimited  number of ad campaigns.</li>
<li><strong>News system</strong><br />
MonoX includes several pre-built  news-related Web parts. All of these modules are integrated with the news  management back end section of the portal.</li>
<li><strong>File upload</strong><br />
File upload Web part provides functionality  for uploading unlimited number of files to the Web server. End user is available  to select files to upload one by one, and than upload them all in a single step.  An alternative Silverlight-based upload part provides even better user  experience and interactivity.</li>
<li><strong>HTML editor</strong><br />
HTML editor is one of the most-often used  Web parts. It allow users to interactively edit the contents of the portal, and  to immediately see the results in the WYSIWYG fashion.</li>
<li><strong>Login</strong><br />
Login Web part allows administrators to quickly  set up the login screen of their applications.</li>
<li><strong>Menu</strong><br />
Menu Web part allows administrators to easily  produce navigation menus on their portals. The navigation structure of a portal  can be defined in the page management section.</li>
<li><strong>Poll</strong><br />
Allows users to set up an unlimited number of polls  and simple surveys.</li>
<li><strong>RSS reader</strong><br />
RSS is an acronym that stands for Really  Simple Syndication and it has become a popular means of distributing and reading  information from around the Web. RSS reader Web part allows users to easily  consume information from unlimited number of RSS sources.</li>
<li><strong>Search</strong><br />
Search Web part offers a very powerful and  flexible functionality for creating local search engine for the various types of  content. It also supports templating techniques, allowing administrators to  tightly integrate this part wherever it is needed, while achieving the desired  appearance and behavior.</li>
<li><strong>List</strong><br />
Allows administrators to manage all list-based  information: FAQs, link lists, user testimonials, and similar.</li>
<li><strong>Newsletter</strong><br />
Enables administrators to create and send  newsletters to target subscriber groups.</li>
</ul>
<h3 style="text-align: justify;">Performance</h3>
<ul style="text-align: justify;">
<li><strong>Advanced caching</strong><br />
MonoX administrators can fine-tune the  caching system on both page and Web part-level to reduce the access time and  increase application responsiveness.</li>
<li><strong>Viewstate optimization</strong><br />
MonoX can completely remove the  contents of the ViewState hidden form field. It practically means that your page  will be much &#8220;lighter&#8221; in terms of size and load times, as ViewState hidden  field can hold tens of kilobytes of data even in moderately complex  applications. All this is possible without loosing any of the ViewState-related  functionality.</li>
<li><strong>HTTP compression</strong><br />
Each portal page or related resource  can be compressed on the fly, reducing the impact on the bandwidth and page load  times.</li>
<li><strong>High-performance, flexible data layer</strong><br />
MonoX utilizes <a href="http://www.llblgen.com/" target="_blank">LLBLGen</a>, a powerful  object-relational engine that generates highly optimized, robust and scalable  database-related code.</li>
</ul>
<h3 style="text-align: justify;">Interoperability</h3>
<ul style="text-align: justify;">
<li><strong>Integration with third-party modules and applications</strong><br />
An  additional benefit of the provider model used in MonoX is that all ASP.NET  applications that use it can be easily integrated with MonoX. Integrating  excellent third-party applications like <a href="http://www.dotnetblogengine.net/" target="_blank">BlogEngine.Net</a> and <a href="http://www.yetanotherforum.net/" target="_blank">YetAnotherForum.NET</a> is  only a matter of few configuration changes in the Web.config files of these  applications (full examples can be downloaded from the support site).</li>
<li style="text-align: justify;"><strong>RSS</strong><br />
Administrators without technical experience can  easily set up both RSS providers and consumers in MonoX and enable it to  exchange information with external applications.</li>
</ul>
<h3 style="text-align: justify;">Please <a href="http://www.kernelemente.com/public/ContentManagement.aspx" target="_self">visit Kernelemente</a> to find out how we can create your ASP.net Content Management System.</h3>
]]></content:encoded>
			<wfw:commentRss>http://www.kernelemente.com/applications/?feed=rss2&#038;p=248</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Kernelemente Cute Editor ASP.net Content Management System</title>
		<link>http://www.kernelemente.com/applications/?p=244</link>
		<comments>http://www.kernelemente.com/applications/?p=244#comments</comments>
		<pubDate>Wed, 18 Aug 2010 14:56:24 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ASP.net Applications]]></category>

		<guid isPermaLink="false">http://www.kernelemente.com/applications/?p=244</guid>
		<description><![CDATA[Cute Editor for ASP.NET is by far the fastest, easiest, most powerful WYSIWYG browser-based Online HTML Editor and the best plugin for an ASP.NET Content Management Sytem. It also available for PHP and ASP.  It enables ASP.NET Web developers to replace any textbox with an intuitive Word-like WYSIWYG html editor. It empowers business users to]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><a href="http://cutesoft.net" target="_blank">Cute Editor for ASP.NET</a> is by far the fastest, easiest, most powerful WYSIWYG  browser-based Online HTML Editor and the best plugin for an ASP.NET Content Management Sytem. It also available for <a title="Cute Editor for PHP" href="http://phphtmledit.com/index.php">PHP</a> and  <a title="Cute Editor for ASP" href="http://cutesoft.net/ASP">ASP</a>.  It enables ASP.NET Web developers to replace any textbox with an  intuitive Word-like WYSIWYG html editor. It empowers business users to  make content updates easily and safely themselves while maintaining control over  site design and content, all at an affordable price.</p>
<h3 style="text-align: justify;">Top features of WYSIWYG HTML Editor</h3>
<p style="text-align: justify;">What makes Cute Editor the leading online HTML Editor on the market? Aside  from its powerful features and ease to use, here are some of the top reasons  that make the Cute Editor your best choice for creating and publishing web  content:</p>
<p style="text-align: justify;">
<p style="text-align: justify;"><strong>A cross-browser, cross-platform WYSIWYG online HTML editor. </strong></p>
<p style="text-align: justify;">Compatible with the most important browsers available in the market: IE 5.5+,  Firefox 1.0+, Chrome, Mozilla 1.3+, Opera 9.0+, Netscape 7+ and Safari (1.3+).  This includes Macintosh and Linux.</p>
<p style="text-align: justify;"><strong>Compliant with the web standards, no deprecated tags such as  &lt;FONT&gt; anymore</strong></p>
<p style="text-align: justify;">Does your online html editor still use deprecated tags such as &lt;FONT&gt;?  Cute Editor will help you build asp.net web applications sites that adhere to the latest HTML standards,  generates clean HTML/XHTML code with no deprecated tags.</p>
<p style="text-align: justify;"><strong>Insert clean HTML from Microsoft Word.</strong></p>
<p style="text-align: justify;">When text is pasted from Microsoft Word a lot of unnecessary word specific  markup is carried across. This can result in web pages that take an  unnecessarily long time to download. The Paste from Word button solves this by  removing word markup before pasting the text into your page. The ideal way for ASP.net Document Management.</p>
<p style="text-align: justify;"><strong>Output HTML or well-formed XHTML to your choice</strong> (<a href="http://cutesoft.net/example/xmloutput.aspx">Demo</a>)</p>
<p style="text-align: justify;">Cute Editor supports output well-formed XHTML. Your choice of XHTML 1.0 or  HTML 4.01 output.</p>
<p style="text-align: justify;"><strong>Clean, lightweight and extremely fast loading</strong></p>
<p style="text-align: justify;">Numerous optimization methods has been applied. It&#8217;s clean, compact,  extremely fast-loading, but still powerful and efficient.</p>
<p style="text-align: justify;"><strong>Advanced file upload function </strong></p>
<p style="text-align: justify;">We integrate a hi-performance ASP.NET CMS upload component &#8211; Ajax uploader into  Cute Editor. Ajax Uploader allows you to select and upload multiple files at  once. It also supports client side validation of the file size/type before  uploading.</p>
<p style="text-align: justify;"><strong>Store images in a Database</strong></p>
<p style="text-align: justify;">With Cute Editor you can easily use a SQL Server database or access database  as the file storage.</p>
<p style="text-align: justify;"><strong>Image insertion and automatic upload</strong></p>
<p style="text-align: justify;">Built-in thumbnail generator. Thumbnail images are dynamically created;  Supports upload new images. Paging &#8211; specify how many images. Support auto  resize images.</p>
<p style="text-align: justify;"><strong>Apply security to control user access to resources</strong></p>
<p style="text-align: justify;">Cute Editor allows developers to assign a pre-defined set of permissions by  group or individual. This prevents a normal user to access the administration  functionality.</p>
<p style="text-align: justify;"><strong>RTF to HTML, HTML to RTF</strong></p>
<p style="text-align: justify;">With Cute Editor you can easily convert an HTML document into an RTF file and  RTF file into HTML or XHTML document.</p>
<p style="text-align: justify;"><strong>Create PDF files</strong></p>
<p style="text-align: justify;">Cute Editor also allows you dynamically create Adobe PDF documents from  ASP.NET.</p>
<p style="text-align: justify;">
<h3>Please <a title="Kernelemente ASP.net CMS" href="http://www.kernelemente.com/public/ContentManagement.aspx" target="_self">visit Kernelemente</a> today and find out how we can improve your Content Management System.</h3>
]]></content:encoded>
			<wfw:commentRss>http://www.kernelemente.com/applications/?feed=rss2&#038;p=244</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Kernelemente ASP.net Web Applications in F#</title>
		<link>http://www.kernelemente.com/applications/?p=241</link>
		<comments>http://www.kernelemente.com/applications/?p=241#comments</comments>
		<pubDate>Mon, 16 Aug 2010 15:20:53 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ASP.net Development]]></category>

		<guid isPermaLink="false">http://www.kernelemente.com/applications/?p=241</guid>
		<description><![CDATA[Some time ago, I wrote a couple of examples of developing web applications in F# using ASP.NET. Since then, the F# language and runtime has changed a little bit and there are also new technologies available in ASP.NET, so I thought I&#8217;d write a more up-to-date article on this topic. In this article, I&#8217;ll present]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Some time ago, I wrote a couple of examples of developing web applications  in F# using ASP.NET. Since then, the F# language and runtime has changed a  little bit and there are also new technologies available in ASP.NET, so I  thought I&#8217;d write a more up-to-date article on this topic. In this article, I&#8217;ll  present a simple &#8220;demo&#8221; F# web application that you can use as a starting point  when creating your own projects (you&#8217;ll also find a convenient Visual Studio  2010 template below). The article shows the following interesting things:</p>
<ul style="text-align: justify;">
<li><strong>ASP.NET MVC</strong> &#8211; We&#8217;re going to use ASP.NET MVC Framework to  create the web application. As the article name suggests, most of the actual  program code including models and controllers will be implemented in F#.</li>
<li><strong>F# LINQ to SQL</strong> &#8211; The application uses a sample Northwind  database and we&#8217;ll write queries for selecting data from the database using LINQ  support that&#8217;s available in the <a href="http://fsharppowerpack.codeplex.com/">F# PowerPack.</a></li>
<li><strong>F# features</strong> &#8211; The application also uses some nice F#  features that are quite useful for developing web applications. We&#8217;ll use  modules and records to implement the model and we&#8217;ll also use advanced  meta-programming features for constructing LINQ queries.</li>
</ul>
<p style="text-align: justify;">If you want to use F# for creating an MVC application, you have a few  options. It should be possible to create the web application solely as an F#  project. However, we&#8217;ll use a more convenient approach. We&#8217;ll create a standard  C# MVC project and move all the actual implementation to an F# library. We&#8217;ll  look at the application structure shortly.</p>
<p style="text-align: justify;">
<h3 style="text-align: justify;">Application structure</h3>
<p style="text-align: justify;">The most convenient way to create an MVC web application, which is  implemented in F# is to mix several C# and F# projects in a single solution. F#  doesn&#8217;t include web project templates and doesn&#8217;t implement all Visual Studio  tools that are needed for comfortable web development, so we&#8217;ll create a C#  projects that allow us to use LINQ to SQL and ASP.NET designers. All important  pieces of code will be written in F# though!</p>
<ul style="text-align: justify;">
<li><strong>WebApplication</strong> is the main MVC web application project.  This is a C# project, but it doesn&#8217;t contain almost any code, because model and  all controllers are implemented in a referenced F# library. This project mainly  contains views (<code>aspx</code> files) and other resources (such as  stylesheets and database).</li>
<li><strong>WebApplication.Core</strong> is an F# project that implements the  core functionality of the application. In the sample application, it contains  <code>Model.fs</code>, which implements the functionality for accessing data and  two controllers (<code>HomeController.fs</code> for the main page and  <code>ProductsController.fs</code> for working with products database). The  <code>Global.fs</code> file registers routes for the URL rewriting.</li>
<li><strong>WebApplication.Data</strong> is a simple C# project that contains  only generated LINQ to SQL classes for our sample database. Although it is  possible to rewrite the classes to F#, it is more convenient to use the tool  available for C# in Visual Studio.</li>
</ul>
<p style="text-align: justify;">When creating the projects by hand, you&#8217;ll need to translate the generated  controllers from C# to F# and you&#8217;ll need to add all relevant ASP.NET references  to the F# library project (there is an absurd number of them). However, you  shouldn&#8217;t face any difficulties or tricky problems. In any case, it is easier to  start using the Visual Studio 2010 template that you can download below.</p>
<p style="text-align: justify;">Now that we looked at the application structure, we&#8217;ll look at a couple of  interesting places in the application. This may give you an idea of some  benefits that F# provides to web developers (although the sample is only very  basic!)</p>
<h3 style="text-align: justify;">Implementing model in F# with LINQ</h3>
<p style="text-align: justify;">As already mentioned, I decided to use the F# implementation of LINQ to SQL  for data access in the application. There are only a few articles about this  topic, so we&#8217;ll discuss it in some more details. As already mentioned, LINQ to  SQL cannot generate the classes natively in F#, so I created a separate C#  project that contains just the generated classes.</p>
<p style="text-align: justify;">The following listing shows the content of the <code>Model.fs</code> (without  a single function that will be discussed shortly). As you can see, I created one  record type for storing information about products that will be displayed in the  page (we&#8217;ll use it later). The rest of the model is implemented as an F# module,  which means that it will appear as static class to .NET. Modules are quite  useful for storing functionality that doesn&#8217;t need to be encapsulated in a  class, so this is a perfect fit:</p>
<pre style="text-align: justify;">namespace WebApplication.Core

open Microsoft.FSharp.Quotations
open Microsoft.FSharp.Linq
open Microsoft.FSharp.Linq.Query

// Namespace with LINQ to SQL generated classes
open WebApplication.Data

// Stores information about product (will be used later)
type ProductInfo = {
  ID : int
  Name : string
  Category : string
  Price : System.Decimal }

// Implementes the model for our MVC application
module Model =
  // Returns the 'Product' entity with the given ID
  let ProductDetail (id) =
    let dx = new NorthwindDataContext()
    &lt;@ seq { for p in dx.Products do
               if (p.ProductID = id) then yield p }
               |&gt; Seq.head @&gt; |&gt; query</pre>
<p style="text-align: justify;">The <code>ProductDetail</code> function first creates a new instance of the  generated data context and then runs the query. A query in F# is written using  quotations. This means that the data-processing code is enclosed in <code>&lt;@  ... @&gt;</code>, which instructs the compiler to store the expression tree of  the code (instead of compiling it). The quotation is then passed to the built-in  <code>query</code> function that interprets it as a LINQ query.</p>
<p style="text-align: justify;">Inside the query, you can use sequence expressions as well as some basic  functions from the <code>Seq</code> module. In our application, we&#8217;re using  sequence expression that selects all products with the specified ID and then use  the <code>Seq.head</code> function to get only first such product.</p>
<h3 style="text-align: justify;">Composing LINQ queries</h3>
<p style="text-align: justify;">The second function implemented in the model will return a list of products.  I made it a bit more sophisticated to demonstrate some interesting capabilities  of the F# support for LINQ. In particular, the function takes a parameter that  can specify how to sort the products. The parameter is a quotation that  represents the expression tree of a key selector that specifies how products  should be sorted. A key selector is a function that takes a product and returns  some its property (or even calculated value). For example, to sort products  using the length of the product name, the key selector would be <code>&lt;@ fun  p -&gt; p.ProductName.Length @&gt;</code>. Let&#8217;s first look at the code and I&#8217;ll  explain how the key selector is used after that:</p>
<pre style="text-align: justify;">let ListProducts (keySelector:Expr&lt;Product -&gt; 'T&gt;) =
  let dx = new NorthwindDataContext()
  &lt;@ seq { for p in dx.Products |&gt; Seq.sortBy %keySelector do
              for c in dx.Categories do
                if (p.CategoryID.Value = c.CategoryID) then
                  yield { ID = p.ProductID
                          Name = p.ProductName
                          Category = c.CategoryName
                          Price = p.UnitPrice.Value } } @&gt; |&gt; query</pre>
<p style="text-align: justify;">The <code>keySelector</code> parameter has a type <code>Expr&lt;Product -&gt;  'T&gt;</code>, which means that it is an expression tree (or a quotation, in the  F# terminology) of some function that takes a <code>Product</code> and returns  some value &#8211; the function is generic, so the value can be anything. It is used  in the quoted expression as a parameter of the <code>Seq.sortBy</code> function.  We use <code>%keySelector</code>, which means that the quotation of the key  selector will be &#8220;spliced&#8221; into the quotation we&#8217;re writing. When we pass the  quoted query to the <code>query</code> function later, it will see the actual  expression in place of the variable spliced using the <code>%</code> operator.  This allows us to compose queries from individual pieces, which is quite useful  and cannot be directly done in C# &#8211; we can for example dynamically compose the  <code>WHERE</code> clause using conditions specified by the user.</p>
<p style="text-align: justify;">The sample query also uses a sequence expression with nested <code>for</code> loops to implement the <code>JOIN</code> functionality. Although this isn&#8217;t  needed, because the <code>Product</code> entity contains a reference to the  associated <code>Category</code>, I wrote the join explicitly to demonstrate a  more complex LINQ query in F#. Finally, when returning the result using the  <code>yield</code> keyword, we construct a value of the record defined in the  previous listing (which is a bit simpler than declaring and creating a class in  C#).</p>
<h3 style="text-align: justify;">Implementing controllers in F#</h3>
<p style="text-align: justify;">Now that we have the module implementing the model component of our MVC  application, we&#8217;ll also need to implement the controller. We&#8217;ll look at the  content of the <code>ProductsController.fs</code> file, which is more  interesting as it uses the model and also calls the <code>ListProducts</code> function with several different key selectors as arguments.</p>
<p style="text-align: justify;">The class contains two members that implement two actions of the controller.  The member <code>List</code> loads a list of products from the database. It has  a parameter which may be <code>null</code> and specifies the ordering of  products (simply as an integer). The second member returns details about the  specified product and is named <code>Detail</code>:</p>
<pre style="text-align: justify;">let (|NonNull|_|) (a:Nullable&lt;_&gt;) =
  if a.HasValue then Some(a.Value) else None

type ProductsController() =
  inherit Controller()

  member x.List(id:Nullable&lt;int&gt;) =
    x.ViewData.Model &lt;-
      match id with
      | NonNull(1) -&gt; Model.ListProducts &lt;@ fun p -&gt; p.UnitPrice.Value @&gt;
      | NonNull(2) -&gt; Model.ListProducts &lt;@ fun p -&gt; p.CategoryID.Value @&gt;
      | _ -&gt; Model.ListProducts &lt;@ fun p -&gt; p.ProductName @&gt;
    x.View() 

  member x.Detail(id:int) =
    x.ViewData.Model &lt;- Model.ProductDetail id
    x.View()</pre>
<p style="text-align: justify;">The listing first defines a simple active pattern that is useful when working  with <code>Nullable&lt;T&gt;</code> values. It matches when the value given as  an argument contains some value and fails when the value is empty. We use it in  the <code>List</code> member where we need to select the ordering. When the  parameter contains 1, we order products by price, parameter 2 specifies ordering  by category and in all other cases (including empty value) we use default  ordering by the product name. As you can see we specify several different key  selectors (functions taking <code>Product</code> enclosed in quotation using  <code>&lt;@ ... @&gt;</code>) of various return types. This is possible, because  the <code>ListProducts</code> function is generic.</p>
<p style="text-align: justify;">In both of the actions, we assign the result to the <code>Model</code> property of the <code>ViewData</code>. This allows the view to access the model  in a type-safe way. The code in the view is standard C# code, so we won&#8217;t look  at it here &#8211; it is just worth mentioning that F# records appear as standard .NET  classes to the C# code, so the integration is very smooth.</p>
<h3 style="text-align: justify;">Summary</h3>
<p style="text-align: justify;">When developing ASP.NET MVC application in F#, the most convenient thing to  do is to create a C# project and move all implementation to an F# library that  is then referenced from the C# project (which contains only <code>aspx</code> files and other content related to the presentation layer). In F#, we can use  LINQ for accessing data and the fact that quotations can be nicely composed  using <em>splicing</em> allows us to implement some patterns that are not easy  to write in C#. Moreover, F# features such as modules and records as well as  pattern matching are quite useful in web development. However, this article  contains only a very basic example that doesn&#8217;t really take the full advantage  of F#, so can only encourage you to download the template below and try  experimenting yourself!</p>
<h3 style="text-align: justify;">Visual Studio 2010 template</h3>
<p style="text-align: justify;">As already mentioned, I created a simple template based on the described  project that allows you to simply create MVC web applications that use F# by  selecting the template in Visual Studio 2010. To increase your appetite, the  screenshot on the right is taken from my &#8220;New Project&#8221; dialog after installing  the template. There are two minor gotchas with projects created from the  template that you need to go through:</p>
<ol style="text-align: justify;">
<li>You&#8217;ll need to go to the <code>WebApplication.Data</code> project and  generate the LINQ to SQL classes from the database description manually (for  some reason, this doesn&#8217;t happen automatically when you build the project). To  do this, right click on <code>Nortwind.dbml</code> and select &#8220;Run Custom Tool&#8221;  command.</li>
<li>You&#8217;ll need to fix the reference from <code>WebApplication.Core</code> to  <code>WebApplication.Data</code> &#8211; simply remove the existing reference and add  it again (choosing the reference to another project in the solution).</li>
</ol>
<p style="text-align: justify;">Once that&#8217;s done, you should be able to run the project (assuming that you  have SQL Server Express installed &#8211; the version that comes with Visual Studio  2010 is fine).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kernelemente.com/applications/?feed=rss2&#038;p=241</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Kernelemente Custom ASP.net Business Applications with WebMatrix</title>
		<link>http://www.kernelemente.com/applications/?p=238</link>
		<comments>http://www.kernelemente.com/applications/?p=238#comments</comments>
		<pubDate>Mon, 16 Aug 2010 15:13:22 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ASP.net Development]]></category>

		<guid isPermaLink="false">http://www.kernelemente.com/applications/?p=238</guid>
		<description><![CDATA[The WebMatrix announcement last week triggered a range of reactions on Twitter. It also brought back some personal memories. A decade ago (wow), I started a little tool to simplify using and developing asp.net server controls as a side project, and it grew bigger and was eventually released using the name &#8220;WebMatrix&#8221;. It was a fun]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">The WebMatrix announcement last week triggered a range of reactions on Twitter.  It also brought back some personal memories. A decade ago (wow), I started a little tool to simplify using and developing  asp.net server controls as a side project, and it grew bigger and was eventually  released using the name &#8220;WebMatrix&#8221;. It was a fun project, and my first  &#8220;serious&#8221; side project so to speak. There were a few interesting things we did  there, both technical and non-technical. It is great seeing similar things  happening in this generation of <em>WebMatrix branded tooling</em>.</p>
<p style="text-align: justify;">
<h3><strong>Vertical and Scenario-Focused Tooling</strong></h3>
<p style="text-align: justify;">I personally think having a variety of tools is good, especially if they can  focus on different verticals, and are optimized for different scenarios/tasks.  There is a saying &#8211; use the right tool for the job. And the reality is there is  a wide spectrum of developers and correspondingly a breadth of requirements and  expectations. Lots of professional/enterprise developers will find Visual Studio  and its rich set of features + ecosystem a must-have for their work. At the same  time, there is a huge number of ASP.net Web developers, designers and scripters that  primarily use Notepad, Textmate or a simple text editor to quickly build and  manage their web sites and applications. For those folks, the simplicity that  comes from the minimal set of options is a feature in itself. WebMatrix caters  to that huge audience. This is true today, and was true back then.</p>
<p style="text-align: justify;">
<h3><strong>Experimentation and New Ideas</strong></h3>
<p style="text-align: justify;">The other aspect of &#8220;WebMatrix&#8221; for <strong>ASP.net Web Development</strong> that really resonates with me is that it  provides an avenue for experimentation of new ideas/approaches, and learning, as  well as innovation. You need speed boats and the agility they offer to explore  the new, and then figure out where you want to go. We tried a number of things  in the original WebMatrix &#8211; light-weight, free and web-focused tooling (I worked  on Visual InterDev and missed the concept of a Web-focused SKU when the features  got merged into Visual Studio). These characteristics also resonated well with  the community, and I like to think the spirit of WebMatrix lived on in the form  of the Express SKUs. The current generation of WebMatrix brings together a nice  combination of simplified development model along with an embedded database  solution (SQLCE), and a renewed focus on addressing server-side rendering  (Razor). Personally, I think even more important than these building block  technologies, is the notion of starting from applications and focusing on  customizing them rather than building new applications from scratch. The concept  of a rich ecosystem of working applications as a starting point is critical in  fueling further growth of the platform as the underlying frameworks mature, and  for competing.</p>
<p style="text-align: justify;">
<h3><strong>A Social IDE &#8211; More Ideas to Explore</strong></h3>
<p style="text-align: justify;">There were many ideas left unfinished in the original WebMatrix. For example,  the online component gallery, and messenger/chat integration. Perhaps they were  a little early back then. However, in this day and age of twitter, and social  development (stack overflow, github etc.), it would be interesting to further  that vision, and explore what an IDE can do to incorporate identity and  facilitate collaborative development.</p>
<p style="text-align: justify;">
<p style="text-align: justify;">The original WebMatrix was one of the big early fully managed ASP.net web applications,  and was written using Windows Forms. It is nice to see the prettier user  interface behind the simplified and streamlined development experience. Of  course, this version is built on WPF.</p>
<p style="text-align: justify;">
<p style="text-align: justify;">I do wonder &#8211; what about a Silverlight-based implementation? What I&#8217;d really also like to see is a richer set of IDE building blocks that  can be composed together more readily to build specific vertical tools and  experiences, without starting from scratch each time. This is what I realized  even back then &#8211; code editor, intellisense, project system, debugger, source  control, are some of the obvious components, that would be interesting to share  across the different tools, Visual Studio, Expression, WebMatrix and other  future efforts.</p>
<h3>Please <a title="Kernelemente ASP.net Development" href="http://www.kernelemente.com/public/Applications.aspx" target="_self">visit Kernelemente</a> to find out what we can do for you.</h3>
]]></content:encoded>
			<wfw:commentRss>http://www.kernelemente.com/applications/?feed=rss2&#038;p=238</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Kernelemente Database Projects with Visual Studio 2010</title>
		<link>http://www.kernelemente.com/applications/?p=235</link>
		<comments>http://www.kernelemente.com/applications/?p=235#comments</comments>
		<pubDate>Mon, 16 Aug 2010 15:01:18 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ASP.net Development]]></category>
		<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://www.kernelemente.com/applications/?p=235</guid>
		<description><![CDATA[Visual Studio 2008 introduced us SQL Server database projects. These projects are also present in Visual Studio 2010. I noticed some differences already when building my photo gallery application. Let’s see how these projects work under Visual Studio 2010. Why database projects? SQL Server Database projects are good for more than one reason to write]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Visual Studio 2008 introduced us SQL Server database projects. These projects are also  present in Visual Studio 2010. I noticed some differences already when building  my photo gallery application. Let’s see how these projects work under Visual  Studio 2010.</p>
<h3 style="text-align: justify;">Why database projects?</h3>
<p style="text-align: justify;">SQL Server Database projects are good for more than one reason to write custom ASP.net Web Applications. Main reason is simple –  all database objects are defined in same solution where is code that is using  this database. Because database project is project like the others then it is  possible to add it to code repository – you get versioning this way.</p>
<p style="text-align: justify;">You can build and deploy database projects so you get SQL-scripts and up to  date database on your database server. And… I’ve heard that database projects  are also able to incremental deployments.</p>
<h3 style="text-align: justify;">Structure of database projects</h3>
<p style="text-align: justify;">In my last posting about my photo gallery system, Packaging  my gallery code, I wrote about how to separate files from ASP.net web projects to  other projects. One of there projects was database project called  MyGallery2010.Database.</p>
<p style="text-align: justify;">You can see my database project structure on right. Currently I have  definitions for tables, primary keys and foreign keys. I think it is enough for  now. When project gets some more complex requirements on database then I will  add new features.</p>
<p style="text-align: justify;">One difference I noticed is that empty database project is created without  deep folder structure in Visual Studio 2010. Visual Studio 2008 database  projects created also folders for tables, keys and so on. Visual Studio 2010  let’s you decide how do you want to organize the definitions of your database  projects.</p>
<p style="text-align: justify;">The internal structure of database projects is very rich and allow to handle asp.net web applications in the most innovative way. Take a look at  properties section – there are settings for SQL command variables, deployments,  permissions and other settings. You can also add database references to Visual  Studio database projects.</p>
<p style="text-align: justify;">And one thing more – take a look at Post-Deployment and Pre-Deployment  folders. You can add there special SQL-scripts that are run before and after  database deployment.</p>
<h3 style="text-align: justify;">Adding database objects to project</h3>
<p style="text-align: justify;">After creating new database project it is easy to start adding definitions  for database objects. You can right-click on database project and select  database object type from menu as show on following screenshot fragment. You can also use &#8220;Add New Item” menu selection to add new database object  definition from database objects menu as shown on following screenshot.</p>
<p style="text-align: justify;">
<p style="text-align: justify;">After adding new object definition Visual Studio 2010 creates file for it and  adds example definition to it. You can use it to build up your own object  definition. Building your database using Visual Studio database projects  guarantees pretty well that you pay attention to every object you define. I  think it may decrease also bugs in database definitions.</p>
<h3 style="text-align: justify;">Building and deploying database</h3>
<p style="text-align: justify;">Building and deploying database projects is not different from other  projects. What is different is output. You can see that before any deployments database scripts are validated and also  object dependencies are analyzed. It means that before deployment the order of  changes is already clear and deployment scripts have no errors.</p>
<p style="text-align: justify;">
<h3>Please <a title="Kernelemente Applications" href="http://www.kernelemente.com/public/Applications.aspx" target="_self">visit Kernelemente</a> to find out what creative applications we can create for you.</h3>
]]></content:encoded>
			<wfw:commentRss>http://www.kernelemente.com/applications/?feed=rss2&#038;p=235</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Kernelemente Quick Database Interfaces with ASP.net (3/3)</title>
		<link>http://www.kernelemente.com/applications/?p=227</link>
		<comments>http://www.kernelemente.com/applications/?p=227#comments</comments>
		<pubDate>Sat, 14 Aug 2010 17:30:31 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ASP.net Development]]></category>

		<guid isPermaLink="false">http://www.kernelemente.com/applications/?p=227</guid>
		<description><![CDATA[Validating database values While creating simple database editing user interfaces with ASP.NET Dynamic Data is a snap, creating business rules to regulate data entry is nonetheless part of almost any application. If possible, the best practice is to start this process from the database level: you should enforce required fields in SQL Server, for instance.]]></description>
			<content:encoded><![CDATA[<h3 style="text-align: justify;">Validating database values</h3>
<p style="text-align: justify;">While creating simple database editing user  interfaces with ASP.NET Dynamic Data is a snap, creating business rules to  regulate data entry is nonetheless part of almost any application. If possible,  the best practice is to start this process from the database level: you should  enforce required fields in SQL Server, for instance. Similarly, if you know that  a field can only have values from 0 to 100, you might add a constraint directly  to the field using the CHECK keyword or the Check Constraints dialog box in SQL  <a href="http://www.developer.com/net/asp/article.php/10917_3823551_4/Create-Quick-Database-Interfaces-with-ASPNET-Dynamic-Data.htm#" target="_blank">Server  Management</a> Studio.</p>
<p style="text-align: justify;">In ASP.NET Dynamic Data applications, certain  database level constraints are automatically enforced. For example, required  fields (NOT NULL) automatically generate a validation error at runtime if left  blank. However, more complex constraints not reflected by the model (such as  CHECK constraints) will generate a generic error saying that the update wasn&#8217;t  successful. To give the user of the application a clearer indication of what&#8217;s  missing, you can again use attributes.</p>
<p style="text-align: justify;">For instance, the Range attribute (defined in the  <code>System.ComponentModel.DataAnnotations</code> namespace) can be used to specify minimum and maximum values for either an  integer or floating point field. This attribute is applied similarly to the  <code>ScaffoldColumn</code> and <code>UIHint</code> attributes.</p>
<p style="text-align: justify;">Other attributes that you can use to check values  include the Required and RegularExpression attributes. It is also possible to  limit string lengths using the StringLength attribute. If you instead prefer to  write custom validation code yourself, then you can write a method to extend the  data model you have. For instance, if you are using ADO.NET Entities, then the  NorthwindModel.Designer.cs file will have partial method declarations for  validating fields.</p>
<p style="text-align: justify;">For example, if you had a business rule saying that employee hire date must be a  Monday, then you could write code to implement the OnHireDateChanging method of  the Employees class.</p>
<p style="text-align: justify;">However, the problem with this approach is that  the OnChanging event is executed many times: when viewing records, when editing  them, and finally when saving them. This means that the actual database values  must match the rules &#8211; if they don&#8217;t, then the data cannot be shown.</p>
<p style="text-align: justify;">If you instead would like to validate values only  when changes are saved back to the database, then you would need to write a bit  more code. The entity data model class (NorthwindEntities in the example  application) contains an event called SavingChanges which you can handle. You  should write your validation rule(s) into this event handler.</p>
<p style="text-align: justify;">Here, the code first implements the  OnContextCreated partial method and then adds an event handler for the  SavingChanges event. The event handler itself (in MyHandlerForSavingChanges)  collects all the added or modified records from the data model, and then loops  thru them to see which are related to the Employees table. Once a match is  found, the value of the HireDate field is checked, and if not a Monday, an  exception is raised.</p>
<p style="text-align: justify;">Writing custom validation code is not difficult,  but often you can avoid this as the attributes provided by ASP.NET Dynamic Data  already are quite versatile. If they don&#8217;t meet your needs however, you can  write custom rules using the two techniques shown previously.</p>
<h3 style="text-align: justify;">Conclusion</h3>
<p style="text-align: justify;">In this article, you have seen how ASP.NET Dynamic  Data can be used to write functional web front-ends to databases in no time.  Without doing almost any customizations, ASP.NET Dynamic Data allows you to  create web interfaces that are suitable at least for administrative purposes.  With some additional development, you can create effective applications that  appeal to a wide range of users. However, ASP.NET Dynamic Data applications  might not directly suit all your needs. In these cases, it is helpful to know  that you can easily integrate an ASP.NET Dynamic Data application into (an  existing) regular ASP.NET WebForms application. You can even enable in-place  editing of data using the grids if you comment and uncomment about ten lines of  code in Global.asax.cs file. Follow the instructions inside the file itself.</p>
<p style="text-align: justify;">Because ASP.NET Dynamic Data applications are  user- interface-wise based on a master page and CSS styles, the applications you  write can also be quickly modified to have the necessary look and feel. In the  future, these customizations will be even easier. CodePlex already contains a  public preview of a forthcoming version, and ASP.NET Dynamic Data will also be a  native part of .NET Framework 4.0. Given this, ASP.NET Dynamic Data has a bright  future. The technology is already useful, and especially so if you need to write  quick interfaces for your databases. And many of us do.</p>
<h3 style="text-align: justify;">Links</h3>
<p style="text-align: justify;"><a href="http://www.asp.net/dynamicdata/">Official ASP.NET Dynamic Data page</a><br />
<a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=FBEE1648-7106-44A7-9649-6D9F6D58056E%20&amp;displaylang=en">Microsoft Visual Studio 2008 Service Pack 1 download page</a><br />
<a href="http://msdn.microsoft.com/en-us/library/cc488545.aspx">Using ASP.NET Dynamic Data on MSDN</a><br />
<a href="http://www.codeplex.com/aspnet/Wiki/View.aspx?title=Dynamic%20Data&amp;referringTitle=Home">ASP.NET Dynamic Data 4.0 Preview 4</a></p>
<p style="text-align: justify;">
<h3><a href="http://www.kernelemente.com/applications/?p=222">Please click here to read Part 1 of our article</a></h3>
<h3><a href="http://www.kernelemente.com/applications/?p=224">Please click here to read Part 2 of our article</a></h3>
<h3>or <a title="Kernelemente ASP.net Applications" href="http://www.kernelemente.com/public/Applications.aspx" target="_self">visit Kernelemente</a> to find out what we can do for you.</h3>
]]></content:encoded>
			<wfw:commentRss>http://www.kernelemente.com/applications/?feed=rss2&#038;p=227</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Kernelemente Quick Database Interfaces with ASP.net (2/3)</title>
		<link>http://www.kernelemente.com/applications/?p=224</link>
		<comments>http://www.kernelemente.com/applications/?p=224#comments</comments>
		<pubDate>Sat, 14 Aug 2010 17:26:43 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ASP.net Development]]></category>

		<guid isPermaLink="false">http://www.kernelemente.com/applications/?p=224</guid>
		<description><![CDATA[ASP.NET Dynamic Data is also intelligent: if the model (and thus the underlying database) has referential integrity set between tables, then your web application will have links from one table to its related tables. In the sample database, a customer can have multiple orders. Thus, the listing for the Customers table contains an automatic link]]></description>
			<content:encoded><![CDATA[<div>
<p style="text-align: justify;">ASP.NET Dynamic Data is also intelligent: if the  model (and thus the underlying database) has referential integrity set between  tables, then your web application will have links from one table to its related  tables. In the sample database, a customer can have multiple orders. Thus, the  listing for the Customers table contains an automatic link to the orders by this  customer. Similarly, from an order page there is an automatic link to order  detail rows.</p>
<h3 style="text-align: justify;">Seeing how Dynamic Data applications are  built</h3>
<p style="text-align: justify;">After taking a stroll through the generated web  application and its many built-in features, it is a good time to close the  browser and return to Visual Studio. Next, you are going to learn how ASP.NET  Dynamic Data applications are constructed.</p>
<p style="text-align: justify;">First, you can see that your project contains a  special folder called DynamicData. This is the default name for this folder, but  you can also customize its name by setting the DynamicDataFolderVirtualPath  property of the metamodel class in the <code>Global.asax.cs</code> file.</p>
<p style="text-align: justify;">The DynamicData folder contains several  subfolders, of which you need to be aware. Four important folders are Content,  CustomPages, FieldTemplates and PageTemplates. By design, the Content subfolder  contains common resources such as logos and other images used by the application  (the actual layout is done using a master template named Site.master).  CustomPages folder is initially empty, but it is designed to be a placeholder  for your pages that you might want to create for individual tables. That is, by  default in ASP.NET Dynamic Data applications, all tables share the same look and  feel for their listing and editing pages. Now, if you wanted to have a different  page for inserting, say, customer and order records, then you could store your  alternative layout pages under the CustomPages folder.</p>
<p style="text-align: justify;">The next two subfolders are key to the operation  of ASP.NET Dynamic Data applications. First, there is the folder called  FieldTemplates. This folder contains around a dozen user controls, each of which  is used to render certain types of database fields. For instance, for Boolean  fields, the Boolean.ascx control is used, and for VARCHAR fields, the Text.ascx  control is used, and so on. ASP.NET Dynamic Data determines the type of each  column based on the model, and then decides which control to render.</p>
<p style="text-align: justify;">The PageTemplates folder contains a set of regular  .aspx files. There are three types of files for the basic database operations:  creating (Insert.aspx), reading (List.aspx) and updating (Edit.aspx). The fourth  basic operation, deletion, is handled by the List.aspx page.</p>
<p style="text-align: justify;">Armed with this knowledge, you can open any of  these files and see how they are built. Recall that the same .aspx pages (and  their code behind files) are used for every table available in the model. Thus,  the pages are not generated statically based on the model, but instead are  formed at run-time based on the model. Because of this, you can see that the  code in the .aspx files refers often to an object named table, which is a  variable defined in the page class.</p>
<p style="text-align: justify;">This object, actually of type MetaTable, contains  meta- information about a selected table; the object itself is initialized in  the Page_Load event handler. In the .aspx file, the code then refers to members  like table.DisplayName and table.GetActionPath.</p>
<h3 style="text-align: justify;">Customizing using attributes</h3>
<p style="text-align: justify;">So far, you have briefly seen how ASP.NET Dynamic  Data applications work. After you have seen how the different features of the  application, you should next learn how you can control how data is displayed in  the application.</p>
<p style="text-align: justify;">Earlier, when looking at the <code>Global.asax.cs</code> file, the <code>ScaffoldAllTables</code> property was set to true. This property  value means that every table in the model became active in the application for  editing and deleting. But maybe you would like to better control which tables  are active. To do this, you need to use attributes. In the data model, the  classes that represent the tables are defined as partial classes. This means  that you can effectively continue adding features to these classes, including  specifying attributes. To write the necessary code, you need to add a new file  to your project.</p>
<p style="text-align: justify;">The easiest way to add this file is to right-click  your project in Visual Studio&#8217;s Solution Explorer and then choose the Add/Class  command. Visual Studio will then ask you for a class name; choose any name you  want, for instance &#8220;MetadataControl&#8221;. Once the file has been created, you can  start editing it.</p>
<p style="text-align: justify;">Assuming for example, that you want to hide the  employees table, you would add a partial class definition for the Employee  class, originally defined in the ADO.NET entity model file  NorthwindModel.Designer.cs (if you followed the naming convention suggested  earlier).</p>
<p style="text-align: justify;">With this definition, the Employees class defined  in the original entity model gets extended, and the ScaffoldTable attribute is  added. This attribute is one of the key ones in ASP.NET Dynamic Data. Many of  the most important attributes are defined in the  System.ComponentModel.DataAnnotations namespace. Other often-needed attributes  include ScaffoldColumn (of which you will soon see an example), <code>DisplayName, DisplayFormat, Range</code> and <code>UIHint</code>.</p>
<p style="text-align: justify;">With the above ScaffoldTable attribute (and the  value of false) in place, you should now run the application to see how it  behaves. In the initial screen showing the names of tables in the data model,  you should see that the Employees table link is missing. And, if you take a look  for example at the Orders table, you can see that the hyperlinks to the table  are also gone.</p>
<p style="text-align: justify;">Notice how there are two ways to show and hide  tables. You can make all tables visible using the <code>ScaffoldAllTables</code> property in the <code>Global.asax.cs</code> file, and then hide them one by one using  attributes. The other option is to go the other way around: leave <code>ScaffoldAllTables</code> to false, and then allow individual  tables to become visible using the <code>ScaffoldTable</code>(true) attribute.</p>
<p style="text-align: justify;">Next, let&#8217;s see how you can control individual  fields using attributes. Previously, you used partial classes to help in  specifying the ScaffoldTable attribute, but if you wanted to have attributes  associated with individual columns, you would need another kind of solution.  Since you cannot have partial property definitions, you must use an additional  class to define properties that are associated with database fields.</p>
<p style="text-align: justify;">To do this, you start with a similar partial class  like with the ScaffoldTable attribute, but you use the MetadataType attribute to  associate another class with the original. Then, this additional class, called  the metadata class, allows you to define public properties for each field in the  data model which you want to control.</p>
<p style="text-align: justify;">Here, the partial class Employees is defined as  before, but also the <code>MetadataType</code> attribute is  applied to the class. The constructor of this attribute accepts a type as a  parameter, which in turn points to the metadata class called <code>EmployeesMetadata</code>. This class is then free to define new  properties and associated field- level attributes to them. For instance, here  the <code>DisplayName</code> attribute (in the <code>System.ComponentModel</code> namespace) is associated with the  column Title to specify a new, more descriptive title for the field. Of course,  the property names must match those in the database for this to work.</p>
<h3 style="text-align: justify;">Modifying user interfaces</h3>
<p style="text-align: justify;">While understanding how attributes are applied in  ASP.NET Dynamic Data applications is key to your success, you must also  understand how you can customize the web page templates that together create the  user interface for your application. As briefly mentioned before, ASP.NET  Dynamic Data applications by default utilize an ASP.NET template file. This file  is named Site.master, and can be found from the root folder of the project.</p>
<p style="text-align: justify;">If you wanted to change the user interface, then  editing the Site.master file would be a good place to start. It utilizes XHTML  code and defines a single content placeholder into which the actual pages are  embedded at runtime. Furthermore, the master file uses CSS styles, which are in  turn defined in the file Site.css. To do application-wide font and color  changes, editing this style sheet file would give you a head start.</p>
<p style="text-align: justify;">In addition to the template and style sheet files,  you do of course have the actual .aspx pages that implement the four basic  operations. This can be found inside the DynamicData\PageTemplates folder in  your solution. For instance, you might wish to change how the listing pages  operate. For this need, you would edit List.aspx.</p>
<p style="text-align: justify;">Another option for customizations is the  DynamicData\FieldTemplates folder. This folder contains the user controls that  ASP.NET Dynamic Data uses to render different database field types. For  instance, a Boolean field is shown as a checkbox to the user. If you wanted to  change this, you could simply go and edit the files Boolean.ascx and  Boolean_Edit.ascx. There usually are two controls defined for each data type:  one for viewing and another for editing. Often, the viewer control is simply a  read-only version of the edit control.</p>
<p style="text-align: justify;">It is also possible to define your own user  controls to work with your data. For instance, you might wish to change the  control that is used to display dates. By default, the DateTime.ascx control  uses a textbox control for this, but you could easily change this to, say, a  calendar control. If you wanted to make this an application-wide change, then  you could simply edit DateTime.ascx, and all date fields would change. You can  also change the control on a field by field basis. This is done using  attributes, just like with the previously shown ScaffoldTable and ScaffoldColumn  attributes.</p>
<p style="text-align: justify;">This declaration mirrors any other user control  definition. However, for a user control to be suitable for ASP.NET Dynamic Data  use, you need to tweak the code-behind file a bit. First, you need to change the  inheritance chain from the regular <code>System.Web.UI.UserControl</code> to <code>System.Web.DynamicData.FieldTemplateUserControl</code>.</p>
<p style="text-align: justify;">Of course, you are not limited to controls that  are available in ASP.NET. For instance if you have purchased a nice,  feature-rich third-party control or created one on your own, you are free to use  them in your ASP.NET Dynamic Data applications. Specifying which user control  should be used when ASP.NET Dynamic Data renders the database views can be  controlled using the UIHint attribute. This attribute is applied to metadata  classes just like the ScaffoldColumn attribute.</p>
<div style="text-align: justify;">
<p style="text-align: justify;">Other than this kind of code, it is quite easy to  customize your pages with custom controls. As you can see, the row listings and  editing pages need not solely rely on labels and text boxes.</p>
<p style="text-align: justify;">
<p style="text-align: justify;">
<h3><a href="http://www.kernelemente.com/applications/?p=222">Please click here to read Part 1 of our article</a></h3>
<h3><a href="http://www.kernelemente.com/applications/?p=227">Please click here to read Part 3 of our article</a></h3>
<h3>or <a title="Kernelemente ASP.net Applications" href="http://www.kernelemente.com/public/Applications.aspx" target="_self">visit Kernelemente</a> to find out what we can do for you.</h3>
<p><!--content_stop--></p>
</div>
<p><!-- close lt div --><!--content_stop--></p>
</div>
<p><!-- close lt div --></p>
]]></content:encoded>
			<wfw:commentRss>http://www.kernelemente.com/applications/?feed=rss2&#038;p=224</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Kernelemente Quick Database Interfaces with ASP.net (1/3)</title>
		<link>http://www.kernelemente.com/applications/?p=222</link>
		<comments>http://www.kernelemente.com/applications/?p=222#comments</comments>
		<pubDate>Sat, 14 Aug 2010 17:18:41 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ASP.net Development]]></category>

		<guid isPermaLink="false">http://www.kernelemente.com/applications/?p=222</guid>
		<description><![CDATA[Have you ever had the need to add database editing support to your ASP.NET web application? Most likely, you have. As you know, this work is not particularly difficult, but it is tedious and often repetitive work. On the lowest level, you analyze your database tables, and then create suitable editing controls for each table]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Have you ever had the need to add database editing  support to your ASP.NET web application? Most likely, you have. As you know,  this work is not particularly difficult, but it is tedious and often repetitive  work. On the lowest level, you analyze your database tables, and then create  suitable editing controls for each table field, write logic to update the  database, and you are done. Next, repeat the same for every table you need to  support.</p>
<p style="text-align: justify;">If you feel you could spend your time better, then  Microsoft has a possible time-saver made just for you. Called ASP.NET Dynamic  Data and part of .NET 3.5 SP1 (Service Pack 1), this new technique lets you  quickly create web-based interfaces for your database editing needs. ASP.NET  Dynamic Data is written so that it supports all the basic database operations:  reading, creating, updating and deleting. Shortly put, the web interfaces  supports the basic CRUD operations for those tables you want to enable.</p>
<p style="text-align: justify;">This article will walk you through creating and  customizing an ASP.NET Dynamic Data web application, starting from the initial  steps to a complete application. Code examples are written using C#, and the  familiar SQL Server sample database Northwind is used as the data source.</p>
<h3 style="text-align: justify;">Getting started with Dynamic Data</h3>
<p style="text-align: justify;">Developing your first ASP.NET Dynamic Data  application is simple, but still the results are effective. To get started, you  first need to install both Visual Studio 2008 Service Pack 1 and .NET 3.5  Service Pack 1.</p>
<p style="text-align: justify;">Since ASP.NET Dynamic Data is aimed at writing  user interfaces for databases, it&#8217;s only natural to have different options for  database access. The two available options are using LINQ to SQL to access your  databases, and the other is to access them using ADO.NET Entity Framework  (ADO.NET Entities for short). Although it&#8217;s technically possible to mix these  two data access options in a single ASP.NET Dynamic Data project, the idea is  that you select one, and then stick to that.</p>
<p style="text-align: justify;">That said, you often have to make an early choice  of your data access strategy when starting development of ASP.NET Dynamic Data  applications. Given this, it is wise to give some thought as to how you would  like to access your databases before starting your project.</p>
<p style="text-align: justify;">For this article, the ADO.NET Entity Framework is  chosen, as it provides an elegant solution to many database access needs. Thus,  the correct template icon to select from the New Project dialog box would be  named &#8220;ASP.NET Dynamic Data Entities Web Application&#8221;. Once you name your  project and click OK, Visual Studio will create a new solution for you with a  skeleton application in place.</p>
<p style="text-align: justify;">Although many other application types can be run  successfully after creating the project, ASP.NET Dynamic Data applications make  an exception. If you try to directly run the application without changing  anything, you will run into a quite disappointing error saying that &#8220;there are  no accessible tables&#8221;. But be brave, this problem is easy to fix!</p>
<p style="text-align: justify;">The fix you need to do is easy to understand, if  you recall that you haven&#8217;t yet specified any database for the application.  Without a database connection, the application wouldn&#8217;t be able to display any  data. (Another thing is whether the application could give you a clearer error  message.) To solve the problem is then, a matter of defining a database  connection.</p>
<p style="text-align: justify;">Since the project template you chose earlier was  designed for ADO.NET Entities, you should next add such a connection to your  project. To do so, right-click the main project node in Visual Studio&#8217;s Solution  Explorer, and then choose the Add/New Item command from the popup menu. This  will bring the Add New Item dialog box onto the screen. From this dialog box,  select the ADO.NET Entity Data Model object (this is easiest to find from the  Data section on the left), and then enter a name for the object. It&#8217;s a good  idea to name the object after your database, for instance NorthwindModel for the  SQL Server sample database.</p>
<p style="text-align: justify;">Once you click OK, the Entity Data Model Wizard  will open (Figure 3). You can either create a model from a database, or an empty  model. Since you will need a SQL database for ASP.NET Dynamic Data applications  in any case, it is usually the easiest to generate the model after an existing  database. The next step in the wizard is to specify the connection string for  your database. This of course depends on your database, but at minimum you will  need the server&#8217;s (host) name, your database name, and finally a user id and a  password.</p>
<p style="text-align: justify;">
<p style="text-align: justify;">After you have specified all the necessary details, continue to the next step in  the wizard. Here, you would specify all the tables, views and stored procedures  you want to include in your model. The easiest, but not always the best option,  is to work directly with the underlying SQL tables. For instance, using views  would let you later change table structure without affecting the application.  Once you have selected your database objects (from now on, this article will  refer to these collectively as tables for simplicity), you can click the Finish  button in the wizard, and then let Visual Studio create the entity model for  you.</p>
<h3 style="text-align: justify;">Connecting to the model</h3>
<p style="text-align: justify;">With the entity data model created and added to  your project, you are ready to connect the model to the rest of the application.  In ASP.NET Dynamic Data applications, there is something called a metamodel, to  which you can connect either a LINQ or an ADO.NET Entity Framework context.</p>
<p style="text-align: justify;">The metamodel contains information about the database which  you wish to edit using your ASP.NET Dynamic Data application. It also contains  details about which tables should be visible, how columns should be formatted,  and so on.</p>
<p style="text-align: justify;">The metamodel is initialized in the Global.asax  code behind file, which is a logical place to register application-wide  settings. Code in the Global.asax file (and its code behind file Global.asax.cs)  is executed when the ASP.NET application loads, i.e. just before the first page  is served.</p>
<p style="text-align: justify;">If you take a look at the default implementation,  you will see a long comment about how the metamodel should be registered. The  last line of the comment is an actual code line (around line number 29), and you  should uncomment and then edit this line to connect or register your data source  with the application. Assuming you have an entity model named NorthwindEntities.</p>
<p style="text-align: justify;">Note how you don&#8217;t need to specify an instance of  your data model; it is enough to specify the type of the class using the C#  <code>typeof</code> operator. Internally, ASP.NET Dynamic Data  uses reflection to gather the necessary data at run-time.</p>
<p style="text-align: justify;">Next, you need to understand the concept of a  scaffold. In ASP.NET Dynamic Data, a scaffold specifies which database tables  and their fields belong to the editable objects in the resulting application. By  default, no tables are visible in the application, but for testing purposes, you  could enable every table and all their fields to be editable. This can be done  by setting the ScaffoldAllTables property to true, as shown in the previous code  listing.</p>
<p style="text-align: justify;">With these registrations in place, you can now run  the application. The default page of the application lists all the tables in  your data model, and each table name is also a link. Clicking a link  allows you to go to a page that displays the records on that particular table. If you take a look at the records, you can see that these listing  pages also contain links to create new records as well as edit and delete them.  By default, these edits are done using separate pages. However, ASP.NET Dynamic  Data also supports in-place editing on the data grids.</p>
<p style="text-align: justify;">
<h3><a href="http://www.kernelemente.com/applications/?p=222">Please click here to read Part 1 of our article</a></h3>
<h3><a href="http://www.kernelemente.com/applications/?p=224">Please click here to read Part 2 of our article</a></h3>
<h3></h3>
<h3>or <a title="Kernelemente ASP.net Applications" href="http://www.kernelemente.com/public/Applications.aspx" target="_self">visit Kernelemente</a> to find out what we can do for you.</h3>
]]></content:encoded>
			<wfw:commentRss>http://www.kernelemente.com/applications/?feed=rss2&#038;p=222</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
PHP Warning:  Module 'PDO' already loaded in Unknown on line 0

