Fix content loss on critical/moderate pages

This commit is contained in:
Jarvis Prime
2026-03-24 04:03:11 +00:00
parent d9a8593a29
commit 30aad962fc
9 changed files with 707 additions and 612 deletions

82
scripts/compare.py Normal file
View File

@@ -0,0 +1,82 @@
#!/usr/bin/env python3
"""Compare Astro preview site content against original scraped HTML."""
import os, re, sys, urllib.request, html
PREVIEW_BASE = "https://componentowl-preview.pages.dev"
ORIGINAL_DIR = "/tmp/cowl-site/www.componentowl.com"
def strip_html(text):
text = re.sub(r'<script[^>]*>.*?</script>', '', text, flags=re.DOTALL)
text = re.sub(r'<style[^>]*>.*?</style>', '', text, flags=re.DOTALL)
text = re.sub(r'<[^>]+>', ' ', text)
text = html.unescape(text)
text = re.sub(r'\s+', ' ', text).strip()
return text
def extract_links(text):
hrefs = set(re.findall(r'href="([^"]+)"', text))
return hrefs
def fetch_url(url):
try:
req = urllib.request.Request(url, headers={"User-Agent": "Mozilla/5.0"})
with urllib.request.urlopen(req, timeout=10) as r:
return r.read().decode('utf-8', errors='ignore')
except:
return None
pages = [
'', 'better-listview', 'better-thumbnail-browser', 'better-splitbutton',
'better-listview-express', 'blog', 'articles', 'sitemap',
'about-us', 'support', 'eula', 'privacy-policy', 'disclaimer',
'pricing-licensing/better-listview', 'pricing-licensing/better-thumbnail-browser',
'pricing-licensing/better-splitbutton', 'comics'
]
print(f"{'Page':<45} | {'Orig':>6} | {'Preview':>7} | {'Diff':>6} | {'Links ±':>8}")
print("-" * 85)
issues = []
for page in pages:
orig_file = page if page else 'index'
orig_path = os.path.join(ORIGINAL_DIR, orig_file + '.html')
if not os.path.exists(orig_path):
orig_path = os.path.join(ORIGINAL_DIR, orig_file, 'index.html')
if os.path.exists(orig_path):
orig_html = open(orig_path).read()
else:
print(f"{page or 'index':<45} | {'NORIG':>6} |")
continue
preview_html = fetch_url(f"{PREVIEW_BASE}/{page}") or fetch_url(f"{PREVIEW_BASE}/{page}.html")
if not preview_html:
print(f"{page or 'index':<45} | {len(strip_html(orig_html)):>6} | {'MISS':>7} |")
issues.append(f"MISSING: {page or 'index'}")
continue
ot = strip_html(orig_html)
pt = strip_html(preview_html)
ol, pl = len(ot), len(pt)
diff = ((pl - ol) / max(ol, 1)) * 100
oh = extract_links(orig_html)
ph = extract_links(preview_html)
ml = len(oh - ph)
flag = ""
if diff < -20:
flag = " ⚠️"
issues.append(f"LOSS {diff:.0f}%: {page or 'index'}")
if ml > 5:
flag += " 🔗"
issues.append(f"LINKS -{ml}: {page or 'index'}")
print(f"{page or 'index':<45} | {ol:>6} | {pl:>7} | {diff:>+5.0f}% | {-ml:>+7}{flag}")
print()
if issues:
print(f"ISSUES ({len(issues)}):")
for i in issues: print(f" {i}")
else:
print("All pages look good!")

View File

@@ -1,6 +1,6 @@
---
import Base from '../layouts/Base.astro';
const title = "Better ListView .NET control: Improved List View control for C# and VB.NET (Windows Forms)";
const title = "Articles for .NET developers - ComponentOwl";
const description = "Better ListView by Component Owl is a .NET WinForms control designed to replace the standard list view control included with C#/VB.net.";
const keywords = "list view, listview, list view control, list view component, .net list view, list view replacement, list view alternative, improved list view, enhanced list view";
const rawContent = `<div class="d-content-wrap">
@@ -19,13 +19,7 @@ const rawContent = `<div class="d-content-wrap">
</div>
</div>
</div>
</div>
`;
</div>`;
---
<Base title={title} description={description} keywords={keywords}>
<Fragment set:html={rawContent} />

View File

@@ -1,32 +1,38 @@
---
import Base from '../layouts/Base.astro';
---
<Base title="Disclaimer - Component Owl" description="Disclaimer for ComponentOwl.com website and products.">
const title = "Disclaimer - ComponentOwl";
const description = "Better ListView by Component Owl is a .NET WinForms control designed to replace the standard list view control included with C#/VB.net.";
const keywords = "list view, listview, list view control, list view component, .net list view";
const rawContent = `<div class="d-content-wrap">
<div class="legal-content disclaimer">
<h1>Disclaimer</h1>
<h2>General</h2>
<p>The information contained in this website is for general information purposes only. The information is provided by Jiri Novotny and
Dextronet.com and while we endeavor to keep the information up to date and correct, we make no representations or warranties of any kind,
express or implied, about the completeness, accuracy, reliability, suitability or availability with respect to the website or the information,
products, services, or related graphics contained on the website for any purpose. Any reliance you place on such information is therefore
strictly at your own risk. All content is provided "as is".</p>
<p>The information contained in this website is for general information purposes only. The information is provided by ComponentOwl.com and while we endeavour to keep the information up to date and correct, we make no representations or warranties of any kind, express or implied, about the completeness, accuracy, reliability, suitability or availability with respect to the website or the information, products, services, or related graphics contained on the website for any purpose. Any reliance you place on such information is therefore strictly at your own risk.</p>
<p>In no event will we be liable for any loss or damage including without limitation, indirect or consequential loss or damage, or any loss
or damage whatsoever arising from loss of data or profits arising out of, or in connection with, the use of this website.</p>
<h2>Limitation of Liability</h2>
<p>Through this website you are able to link to other websites which are not under our control. We have no control over the nature, content
and availability of those sites. The inclusion of any links does not necessarily imply a recommendation or endorse the views expressed
within them.</p>
<p>In no event will we be liable for any loss or damage including without limitation, indirect or consequential loss or damage, or any loss or damage whatsoever arising from loss of data or profits arising out of, or in connection with, the use of this website.</p>
<p>Every effort is made to keep the website up and running smoothly. However, Jiri Novotny and Dextronet.com take no responsibility for,
and will not be liable for, the website or any related products or services being temporarily unavailable due to technical issues
beyond our control.</p>
<h2>External Links</h2>
<p>All software offered by Jiri Novotny and Dextronet.com comes with End User License Agreement that you are bound to accept and agree
to in order to install and use the software.</p>
<p>Through this website you are able to link to other websites which are not under the control of ComponentOwl.com. We have no control over the nature, content and availability of those sites. The inclusion of any links does not necessarily imply a recommendation or endorse the views expressed within them.</p>
<h2>Availability</h2>
<p>Every effort is made to keep the website up and running smoothly. However, ComponentOwl.com takes no responsibility for, and will not be liable for, the website being temporarily unavailable due to technical issues beyond our control.</p>
<h2>Copyright</h2>
<p>All content on this website, including but not limited to text, graphics, logos, images, and software, is the property of ComponentOwl.com or its content suppliers and is protected by international copyright laws.</p>
<p>This website and its content is copyright of Jiri Novotny and Dextronet.com &copy; Jiri Novotny and Dextronet.com 2005-2010. All rights reserved.</p>
</div>
</div>`;
---
<Base title={title} description={description} keywords={keywords}>
<Fragment set:html={rawContent} />
</Base>

View File

@@ -1,20 +1,24 @@
---
import Base from '../layouts/Base.astro';
---
<Base title="Better ListView .NET control: Improved List View control for C# and VB.NET (Windows Forms)" description="Better ListView by Component Owl is a .NET WinForms control designed to replace the standard list view control included with C#/VB.net.">
const title = "Better ListView .NET control: Improved List View control for C# and VB.NET (Windows Forms)";
const description = "Better ListView by Component Owl is a .NET WinForms control designed to replace the standard list view control included with C#/VB.net.";
const keywords = "list view, listview, list view control, list view component, .net list view, list view replacement, list view alternative, improved list view, enhanced list view";
const rawContent = `<div class="d-content-wrap">
<div class="d-placing">
<h1 class="homehd"><span>Better ListView alternative — .NET control for WinForms</span></h1>
<h1 class="homehd"><span>Better ListView alternative - .NET control for WinForms</span></h1>
<h2 class="homeph">The number one replacement component for the regular .NET ListView control.</h2>
<h2 class="homeph">We've rewritten the .NET ListView control. Great look and feel, more features, better behavior. No learning needed.</h2>
<h2 class="homeph">We&rsquo;ve rewritten the .NET ListView control. Great look and feel, more features, better behavior. No learning needed.</h2>
<div class="hp-wrap">
<div class="buttons-hp-vertical">
<a href="/better-listview" class="standard-free-download">Download Free Trial</a>
<a href="/pricing-licensing/better-listview" class="standard-buy">See Pricing</a>
<div class="buttons-hp buttons-hp-vertical">
<a onclick="ga('send', 'event', 'trial', 'click');" data-sumome-listbuilder-id="4016d967-e098-487d-a20e-da328d2345df" class="standard-download image-link">Download Free Trial - With sample projects</a>
<a href="blog/page/6/index.html" class="standard-more image-link">Learn More - Features &amp; Screenshots</a>
<a href="pricing-licensing/better-listview.html" class="standard-buy image-link">See Pricing &amp; Licensing</a>
<div class="logos">
<img src="/images/logo-vs.gif" alt="Visual Studio" />
<img src="/images/logo-dotnet.gif" alt=".NET" />
<img alt="Microsoft .NET" src="images/logo-dotnet.gif" />
<img alt="Microsoft Visual Studio" src="images/logo-vs.gif" />
<img alt="Microsoft Windows" src="images/logo-win.gif" />
</div>
</div>
<iframe width="560" height="315" src="https://www.youtube.com/embed/hsY5OLRwNYw" frameborder="0" allowfullscreen></iframe>
@@ -22,141 +26,157 @@ import Base from '../layouts/Base.astro';
<div class="home-static">
<div class="darrows"></div>
<hr class="hpline" />
<h3 class="sshd">New Better ListView 3.15</h3>
<div class="ss-overview"><img alt="Better ListView 2.0" src="images/ss-overview.png" /></div>
<hr class="hpline" />
<div class="buttons-hp buttons-hp-horizontal">
<a href="/better-listview" class="standard-free-download">Download Free Trial</a>
<a href="/pricing-licensing/better-listview" class="standard-buy">See Pricing</a>
<div class="logos">
<img src="/images/logo-vs.gif" alt="Visual Studio" />
<img src="/images/logo-dotnet.gif" alt=".NET" />
<img src="/images/logo-win.gif" alt="Windows" />
</div>
</div>
<h3 class="compatiblehd">Excellent compatibility of Better ListView:</h3>
<p class="ss-overview"><img src="/images/ss-overview.png" alt="Better ListView 2.0 Overview" /></p>
<div class="compatiblelists">
<ul class="compatiblelist list-l">
<li class="logo vs"><img alt="Logo-vs-big" src="images/logo-vs-big.gif" /></li>
<li>Visual Studio 2015, 2013, 2012, 2010, 2008, 2005.</li>
<li>C#, Visual Basic .NET (VB.NET), managed<br />C++, and other CLI languages.</li>
</ul>
<h3><strong>Excellent compatibility of Better ListView</strong></h3>
<div class="lists">
<div class="list-l">
<ul class="common">
<li>Visual Studio 2015, 2013, 2012, 2010, 2008, 2005 — with full designer support</li>
<li>C#, Visual Basic .NET (VB.NET), managed C++, and other CLI languages</li>
<ul class="compatiblelist list-r">
<li class="logo dotnet"><img alt="Logo-dotnet-big" src="images/logo-dotnet-big.gif" /></li>
<li>.NET 4.5, .NET 4, .NET 3.5, .NET 3, .NET 2, and newer.</li>
<li>Windows 10, 8, 7, Vista, 2003, XP, 2000, and newer, both 32-bit and 64-bit.</li>
</ul>
</div>
<div class="list-r">
<ul class="common">
<li>.NET 4.5, .NET 4, .NET 3.5, .NET 3, .NET 2, and newer. Supports .NET Client Profile.</li>
<li>Windows 10, 8, 7, Vista, 2003, XP, 2000, and newer — 32-bit and 64-bit</li>
</ul>
</div>
</div>
<h3><strong>Better ListView advantages:</strong></h3>
<div class="lists">
<div class="list-l">
<ul class="common">
<h3>Better ListView<strong> advantages:</strong></h3>
<ul class="common checklist">
<li>Single small DLL file (less than 250kB when compressed).</li>
<li>FIPS-compliant, CLS-compliant, digitally signed and strongly named.</li>
<li>Easy deployment (xcopy). No dependencies. No installation.</li>
<li>Royalty-free distribution. No runtime licensing.</li>
<li>Written from scratch in pure managed code.</li>
<li>Fast, optimized for 10,000+ items.</li>
<li>Fast, optimized for 10.000+ items.</li>
<li>No learning needed. Very similar to regular .NET ListView control.</li>
<li>User-friendly and developer-friendly.</li>
</ul>
</div>
<div class="list-r">
<ul class="common">
<li>No limits of the regular Microsoft .NET ListView control.</li>
<li>No limits of the regular Microsoft .NET ListView control bundled with Visual Studio!</li>
<li>Tested by thousands of users world-wide.</li>
<li>Guaranteed continued support and development.</li>
<li>Guaranteed continued support and development. We use Better ListView ourselves in our
popular and successful desktop products, like
<a href="http://www.dextronet.com/swift-to-do-list-software" class="nowrap">Swift To-Do List</a>.</li>
<li>Well documented, intuitive method/properties names.</li>
<li>Always looks great. Always fully uses the current Windows theme, including Aero support.</li>
<li>Enterprise source code licenses available.</li>
<li>Fast 24-hour or faster support.</li>
</ul>
</div>
</div>
<div class="testimonial-wide">
"Better List View is <strong>awesome</strong>." — Daniel Nolan
</div>
<div class="list-r">
<h3>BetterListView<strong> extra features:</strong></h3>
<h3><strong>BetterListView extra features:</strong></h3>
<p>Better ListView has hundreds of extra features, compared to the regular .NET ListView control.
Plus, it removes all its limitations and bugs. Some of the most notable extra features include:</p>
<p>Better ListView has hundreds of extra features compared to the regular .NET ListView control. Some of the most notable include:</p>
<div class="lists">
<div class="list-l">
<ul class="common">
<ul class="common checklist">
<li>Hierarchical items. Supports sub-items like in the tree view control.</li>
<li>Thumbnails view.</li>
<li>Serialization XML and Binary.</li>
<li>Save/load Better ListView content into XML or binary in just 1 line of code.</li>
<li>Serialization &ndash; XML and Binary</li>
<li>Save/load Better ListView content into XML or binary, string or file, in just 1 line of code.</li>
<li>Inbuilt drag &amp; drop reordering (with insertion mark indicator).</li>
<li>Sub-item images.</li>
<li>Sub-item images</li>
<li>Double-buffered and flicker-free.</li>
</ul>
</div>
<div class="list-r">
<ul class="common">
<li>Highly customizable and flexible.</li>
<li>Multi-column sorting.</li>
<li>Inbuilt sorting (zero code needed).</li>
<li>Checkboxes in all views, 3-state support.</li>
<li>Better grouping collapsible, image support, context menu support, focusable.</li>
<li>Checkboxes in all views, 3-state support</li>
<li>Better grouping &ndash; preserves item order, customizable group headers look and behavior,
collapsible, image support, context menu support, focusable, etc.</li>
<li>Embedded editing controls, support for custom controls.</li>
<li>Complex data binding with custom column mapping.</li>
<li>Many other useful features - <a href="blog/page/6/index.html">see more Better ListView features</a>.</li>
</ul>
</div>
</div>
<hr class="hpline" />
<div class="testimonial-wide">
<blockquote>&ldquo;Better List View is <b>awesome</b>.&rdquo; &ndash; Daniel Nolan</blockquote>
</div>
<h3><strong>Why is Better ListView the best ListView replacement component for .NET (C#, VB)?</strong></h3>
<div class="tellingct">
<div class="tellingcnt">
<h3 class="tellinghd">Why is Better ListView the best ListView<br />replacement component for .NET (C#, VB)?</h3>
<p>To put it simply, there is nothing like Better ListView out there. Nothing.</p>
<p>Better ListView has been designed as a component that can easily replace the original ListView control supplied with .NET. There is virtually no learning needed. It's just intuitive.</p>
<p>Better ListView has been designed as a component that can easily replace the original
ListView control supplied with .NET.</p>
<p>Better ListView looks native and always fully utilizes the current system theme (so there is no weird inconsistent look), and it also behaves exactly like it should. We've modeled it after the original list view component and the list view used in Windows Explorer — everyone already knows how to use it.</p>
<p>There is virtually no learning needed. It&rsquo;s just intuitive.</p>
<p>We put extreme attention to details. All the little quirks and nuances that drive us crazy when it comes to components of many smaller vendors are resolved in Better ListView. You will be amazed how flexible and customizable it is, and how great it feels to use it.</p>
<p>Better ListView looks native and always fully utilizes the current system theme (so there is
no weird inconsistent look), and it also behaves exactly like it should. We&rsquo;ve modeled it after
the original list view component and the list view used in Windows Explorer &ndash; everyone already
knows how to use it. It fully leverages the previous user knowledge.</p>
<p>We put extreme attention to details. All the little quirks and nuances that drive us crazy when
it comes to components of many smaller vendors are resolved in Better ListView. You will be
amazed how flexible and customizable it is, and how great it feels to use it. The users of your
application will feel right at home.</p>
<p>Most importantly, <strong>Better ListView is packed full of great features</strong>.</p>
<p>If you are wondering why we created Better ListView, you can read <a href="/better-listview">our story</a>.</p>
<p>If you are wondering why we created Better ListView, you can read
<a href="better-listview/story.html">our story</a>.</p>
<div class="testimonial-wide">
"Better ListView really is better — it kills the standard .NET ListView in both performance and flexibility. I'll never use anything else." — Mitchell Vincent, KSoftware
<p class="ending">And by the way, Better ListView comes with awesome samples explorer. Download and install
the trial package right now and see for yourself what Better ListView can do.</p>
</div>
<div class="testimonial-wide">
"Wow! This is so easy to use. I'm not a very experienced VB.NET programmer, but I was up and running w/ Better List View in a matter of minutes. Great product! It's just what I needed." — Bret Reece, Five O'clock Software
<div class="testimonial ">
<blockquote>Better ListView really is better - <b>it kills the standard .NET ListView</b> in
both performance and flexibility. I&rsquo;ll never use anything else.</blockquote>
<em>Mitchell Vincent, <a href="http://www.ksoftware.net" target="_blank">KSoftware</a></em>
</div>
<div class="testimonial-wide">
"Overall what I really like about Better ListView is that you've gone for elegance, simplicity and consistency in the appearance and the behaviour of the control." — Daniel Nolan
<div class="testimonial ">
<blockquote>&ldquo;Wow! This is so easy to use. I&rsquo;m not a very experienced VB.NET programmer, but I was up and running w/ Better List View in a matter of minutes. Great product! <b>It&rsquo;s just what I needed.</b>&rdquo;
</blockquote>
<em>Bret Reece, <a href="http://www.custodytoolbox.com" target="_blank">Five O&rsquo;clock Software</a></em>
</div>
<div class="testimonial-wide">
"The control is very easy and intuitive to use and is well documented." — DevProConnections.com Review
<div class="testimonial ">
<blockquote>Overall what I really like about Better ListView is that <b>you&rsquo;ve gone for elegance, simplicity and consistency</b> in the appearance and the behaviour of the control.
</blockquote>
<em><a href="http://danere.com" target="_blank">Daniel Nolan</a></em>
</div>
<div class="buttons-hp">
<a href="/better-listview" class="standard-free-download">Download Free Trial</a>
<a href="/pricing-licensing/better-listview" class="standard-buy">See Pricing</a>
<div class="testimonial ">
<blockquote>The control is very <b>easy and intuitive to use and is well documented</b>.</blockquote>
<em><a href="http://www.devproconnections.com/article/product-review/review-componentowl-s-better-listview" target="_blank">DevProConnections.com Review</a></em>
</div>
</div>
<div class="darrows"></div>
<div class="buttons-hp buttons-hp-horizontal">
<a onclick="ga('send', 'event', 'trial', 'click');" data-sumome-listbuilder-id="4016d967-e098-487d-a20e-da328d2345df" class="standard-download image-link">Download Free Trial - With sample projects</a>
<a href="blog/page/6/index.html" class="standard-more image-link">Learn More - Features &amp; Screenshots</a>
<a href="pricing-licensing/better-listview.html" class="standard-buy image-link">See Pricing &amp; Licensing</a>
<div class="logos">
<img src="/images/logo-vs.gif" alt="Visual Studio" />
<img src="/images/logo-dotnet.gif" alt=".NET" />
<img src="/images/logo-win.gif" alt="Windows" />
<img alt="Microsoft .NET" src="images/logo-dotnet.gif" />
<img alt="Microsoft Visual Studio" src="images/logo-vs.gif" />
<img alt="Microsoft Windows" src="images/logo-win.gif" />
</div>
</div>
</div>
</div>
<div class="sharethis"></div>
</div>
</div>
</div>`;
---
<Base title={title} description={description} keywords={keywords}>
<Fragment set:html={rawContent} />
</Base>

View File

@@ -1,126 +1,158 @@
---
import Base from '../../layouts/Base.astro';
---
<Base title="Better ListView Pricing & Licensing" description="Pricing and licensing information for Better ListView .NET control.">
const title = "Licensing & Pricing for Better ListView - ComponentOwl";
const description = "Purchase the ideal replacement component for .NET ListView. Single developer, 5-developer, site, and enterprise licenses available.";
const keywords = "better listview pricing, better listview license, buy better listview, .net listview component purchase";
const rawContent = `<div class="d-content-wrap">
<div class="order-content">
<h1>Better ListView — Pricing &amp; Licensing</h1>
<h1>Licensing &amp; pricing for Better ListView</h1>
<p class="section-info">Purchase the ideal replacement component for .NET ListView.</p>
<h2>Buy New Licenses</h2>
<ul id="buy-nav" class="nav">
<li><a href="better-listview.html" class="current">Buy new licenses</a></li>
<li><a href="better-listview.html">Renew license</a></li>
</ul>
<table>
<thead>
<div id="buy-panels">
<div class="panel" style="display: none">
<form action="https://secure.bmtmicro.com/servlets/Orders.ShoppingCart" method="get">
<input id="CID" name="CID" type="hidden" value="1830/12" />
<input id="CLR" name="CLR" type="hidden" value="0" />
<input class="product-id" id="PRODUCTID" name="PRODUCTID" type="hidden" value="" />
<table cellspacing="0">
<tr>
<th>License</th>
<th class="price">Price</th>
<th class="buy-col">Buy</th>
<th colspan="3">Single developer licenses</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Single developer license</strong> with 1 year subscription</td>
<td>Single developer license with 1 year subscription</td>
<td class="price">$345</td>
<td class="buy-col"><a href="https://secure.bmtmicro.com/servlets/Orders.ShoppingCart?CID=1830/12&PRODUCTID=18300042" class="btn-buy" target="_blank">Buy Now</a></td>
<td class="buy"><input class="buy" data-value="18300042" name="PRODUCTID" onclick="bmtForm(this)" type="submit" value="" /></td>
</tr>
<tr>
<td><strong>5 developer license</strong> with 1 year subscription</td>
<th colspan="3">5 developers licenses</th>
</tr>
<tr>
<td>5 developer license with 1 year subscription</td>
<td class="price">$995</td>
<td class="buy-col"><a href="https://secure.bmtmicro.com/servlets/Orders.ShoppingCart?CID=1830/12&PRODUCTID=18300044" class="btn-buy" target="_blank">Buy Now</a></td>
<td class="buy"><input class="buy" data-value="18300044" name="PRODUCTID" onclick="bmtForm(this)" type="submit" value="" /></td>
</tr>
<tr>
<td><strong>Site license</strong> with 1 year subscription</td>
<td class="price">$1,995</td>
<td class="buy-col"><a href="https://secure.bmtmicro.com/servlets/Orders.ShoppingCart?CID=1830/12&PRODUCTID=18300046" class="btn-buy" target="_blank">Buy Now</a></td>
<th colspan="3">Site licenses - use at 1 site (office or building)</th>
</tr>
<tr>
<td><strong>Site license with source code</strong> and 1 year subscription</td>
<td class="price">$3,995</td>
<td class="buy-col"><a href="https://secure.bmtmicro.com/servlets/Orders.ShoppingCart?CID=1830/12&PRODUCTID=18300047" class="btn-buy" target="_blank">Buy Now</a></td>
<td>Site license with 1 year subscription</td>
<td class="price">$1995</td>
<td class="buy"><input class="buy" data-value="18300046" name="PRODUCTID" onclick="bmtForm(this)" type="submit" value="" /></td>
</tr>
<tr>
<td><strong>Enterprise license with source code</strong> and 1 year subscription</td>
<td class="price">$8,995</td>
<td class="buy-col"><a href="https://secure.bmtmicro.com/servlets/Orders.ShoppingCart?CID=1830/12&PRODUCTID=18300048" class="btn-buy" target="_blank">Buy Now</a></td>
<td>Site license with source code and 1 year subscription</td>
<td class="price">$3995</td>
<td class="buy"><input class="buy" data-value="18300047" name="PRODUCTID" onclick="bmtForm(this)" type="submit" value="" /></td>
</tr>
<tr>
<th colspan="3">Enterprise license - use world-wide at unlimited sites</th>
</tr>
<tr>
<td>Enterprise license with source code and 1 year subscription</td>
<td class="price">$8995</td>
<td class="buy"><input class="buy" data-value="18300048" name="PRODUCTID" onclick="bmtForm(this)" type="submit" value="" /></td>
</tr>
</tbody>
</table>
<h2>Renew Subscription</h2>
</form>
<table>
<thead>
</div>
<div class="panel" style="display: none">
<form action="https://secure.bmtmicro.com/servlets/Orders.ShoppingCart" method="get">
<input id="CID" name="CID" type="hidden" value="1830/12" />
<input id="CLR" name="CLR" type="hidden" value="0" />
<input class="product-id" id="PRODUCTID" name="PRODUCTID" type="hidden" value="" />
<table cellspacing="0">
<tr>
<th>License</th>
<th class="price">Price</th>
<th class="buy-col">Renew</th>
<th colspan="3">Single developer licenses</th>
</tr>
</thead>
<tbody>
<tr>
<td>Renew <strong>single developer</strong> 1 year subscription</td>
<td>Renew single developer 1 year subscription</td>
<td class="price">$138</td>
<td class="buy-col"><a href="https://secure.bmtmicro.com/servlets/Orders.ShoppingCart?CID=1830/12&PRODUCTID=18300049" class="btn-buy" target="_blank">Renew</a></td>
<td class="buy"><input class="renew" data-value="18300049" name="PRODUCTID" onclick="bmtForm(this)" type="submit" value="" /></td>
</tr>
<tr>
<td>Renew <strong>5 developer</strong> 1 year subscription</td>
<th colspan="3">5 developers licenses</th>
</tr>
<tr>
<td>Renew 5 developer 1 year subscription</td>
<td class="price">$398</td>
<td class="buy-col"><a href="https://secure.bmtmicro.com/servlets/Orders.ShoppingCart?CID=1830/12&PRODUCTID=18300051" class="btn-buy" target="_blank">Renew</a></td>
<td class="buy"><input class="renew" data-value="18300051" name="PRODUCTID" onclick="bmtForm(this)" type="submit" value="" /></td>
</tr>
<tr>
<td>Renew <strong>site license</strong> 1 year subscription</td>
<th colspan="3">Site licenses - use at 1 site (office or building)</th>
</tr>
<tr>
<td>Renew site license 1 year subscription</td>
<td class="price">$798</td>
<td class="buy-col"><a href="https://secure.bmtmicro.com/servlets/Orders.ShoppingCart?CID=1830/12&PRODUCTID=18300053" class="btn-buy" target="_blank">Renew</a></td>
<td class="buy"><input class="renew" data-value="18300053" name="PRODUCTID" onclick="bmtForm(this)" type="submit" value="" /></td>
</tr>
<tr>
<td>Renew <strong>site license with source code</strong> 1 year subscription</td>
<td class="price">$1,598</td>
<td class="buy-col"><a href="https://secure.bmtmicro.com/servlets/Orders.ShoppingCart?CID=1830/12&PRODUCTID=18300054" class="btn-buy" target="_blank">Renew</a></td>
<td>Renews site license 1 year subscription with source code</td>
<td class="price">$1598</td>
<td class="buy"><input class="renew" data-value="18300054" name="PRODUCTID" onclick="bmtForm(this)" type="submit" value="" /></td>
</tr>
<tr>
<td>Renew <strong>enterprise license with source code</strong> 1 year subscription</td>
<td class="price">$3,598</td>
<td class="buy-col"><a href="https://secure.bmtmicro.com/servlets/Orders.ShoppingCart?CID=1830/12&PRODUCTID=18300055" class="btn-buy" target="_blank">Renew</a></td>
<th colspan="3">Enterprise license - use world-wide at unlimited sites</th>
</tr>
<tr>
<td>Renew enterprise license 1 year subscription with source code</td>
<td class="price">$3598</td>
<td class="buy"><input class="renew" data-value="18300055" name="PRODUCTID" onclick="bmtForm(this)" type="submit" value="" /></td>
</tr>
</tbody>
</table>
</form>
</div>
</div>
<div class="licenses-info">
<div class="block">
<h3>Royalty-Free Distribution</h3>
<p>All licenses include royalty-free distribution rights. You can distribute Better ListView DLL with your applications without any additional fees.</p>
</div>
<div class="block">
<h3>Free Updates</h3>
<p>All licenses include 1 year of free updates. After the first year, you can renew your update subscription at a discounted rate.</p>
<p>All licenses are:</p>
<ul class="common">
<li>Life-time (non-expiring)</li>
<li>Royalty free</li>
</ul>
</div>
<div class="block last">
<h3>Priority Support</h3>
<p>All licenses include priority email support. We usually reply within 24 hours or sooner.</p>
<p>Subscription gets you:</p>
<ul class="common">
<li>Support</li>
<li>Updates</li>
</ul>
</div>
</div>
<p style="text-align:center; margin-top:30px">
<a href="/support">Contact us</a> if you have any questions about licensing or need a custom license.
</p>
</div>
<style>
.btn-buy {
display: inline-block;
background: #4a7400;
color: #fff !important;
padding: 6px 14px;
border-radius: 4px;
text-decoration: none;
font-size: 0.9em;
white-space: nowrap;
}
.btn-buy:hover { background: #3a5c00; }
.buy-col { text-align: center; width: 100px; }
h2 { margin-top: 2em; font-size: 1.2em; color: #4a7400; }
</style>
<div class="licenses-info">
<p>What license do I need?</p>
<ul class="common">
<li>If only 1 developer works on your current and future projects, then the "Single developer license" is for you.</li>
<li>If 2-5 developers works on your current and future projects, then the "5 developer license" is for you.</li>
<li>If more than 5 developers work on your current and future projects, then the "Site license" is for you.</li>
<li>If you have multiple teams in different locations, then the "Enterprise license" is for you.</li>
</ul>
</div>
</div>
</div>`;
---
<Base title={title} description={description} keywords={keywords}>
<Fragment set:html={rawContent} />
</Base>

View File

@@ -1,80 +1,85 @@
---
import Base from '../../layouts/Base.astro';
---
<Base title="Better SplitButton Pricing & Licensing" description="Pricing and licensing information for Better SplitButton .NET control.">
const title = "Licensing & Pricing for Better SplitButton - ComponentOwl";
const description = "Better SplitButton is free for non-commercial use. Commercial license with source code available for $49.";
const keywords = "better splitbutton pricing, better splitbutton license, buy better splitbutton, .net splitbutton component purchase";
const rawContent = `<div class="d-content-wrap">
<div class="order-content">
<h1>Better SplitButton — Pricing &amp; Licensing</h1>
<h1>Licensing &amp; pricing for Better SplitButton</h1>
<p class="section-info">Better SplitButton is free for non-commercial use.</p>
<table>
<thead>
<ul id="buy-nav" class="nav">
<li><a href="better-splitbutton.html" class="current">Buy new licenses</a></li>
</ul>
<div id="buy-panels">
<div class="panel" style="display: none">
<form action="https://secure.bmtmicro.com/servlets/Orders.ShoppingCart" method="get">
<input id="CID" name="CID" type="hidden" value="1830/12" />
<input id="CLR" name="CLR" type="hidden" value="0" />
<input class="product-id" id="PRODUCTID" name="PRODUCTID" type="hidden" value="" />
<table cellspacing="0">
<tr>
<th>License</th>
<th class="price">Price</th>
<th class="buy-col">Buy</th>
<th colspan="3">Non-Commercial License</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Non-Commercial License</strong> — free for non-commercial use</td>
<td>Non-Commercial License &mdash; free for non-commercial use</td>
<td class="price">Free</td>
<td class="buy-col"><a href="https://www.componentowl.com/bettersplitbutton.exe" class="btn-download">Download</a></td>
<td class="buy"><a href="/bettersplitbutton.exe" class="btn-download">Download</a></td>
</tr>
<tr>
<td><strong>Commercial License with source code</strong> — includes full source code and 1 year of free updates</td>
<td class="price">$49</td>
<td class="buy-col"><a href="https://secure.bmtmicro.com/servlets/Orders.ShoppingCart?CID=1830/12&PRODUCTID=18300075" class="btn-buy" target="_blank">Buy Now</a></td>
<th colspan="3">Commercial License</th>
</tr>
<tr>
<td>Commercial License with source code &mdash; includes full source code and 1 year of free updates</td>
<td class="price">$49</td>
<td class="buy"><input class="buy" data-value="18300075" name="PRODUCTID" onclick="bmtForm(this)" type="submit" value="" /></td>
</tr>
</tbody>
</table>
</form>
</div>
</div>
<div class="licenses-info">
<div class="block">
<h3>Free for Non-Commercial Use</h3>
<p>Better SplitButton is completely free for non-commercial projects. No registration required.</p>
</div>
<div class="block">
<h3>Source Code Included</h3>
<p>The commercial license includes full source code so you can customize the control to your needs.</p>
</div>
<div class="block last">
<h3>Royalty-Free Distribution</h3>
<p>Both licenses include royalty-free distribution rights.</p>
</div>
</div>
<p style="text-align:center; margin-top:30px">
<a href="/support">Contact us</a> if you have any questions about licensing.
</p>
</div>
<style>
.btn-buy {
display: inline-block;
background: #4a7400;
color: #fff !important;
padding: 6px 14px;
border-radius: 4px;
text-decoration: none;
font-size: 0.9em;
white-space: nowrap;
}
.btn-buy:hover { background: #3a5c00; }
.btn-download {
display: inline-block;
background: #2a6496;
color: #fff !important;
padding: 6px 14px;
border-radius: 4px;
text-decoration: none;
font-size: 0.9em;
white-space: nowrap;
}
.btn-download:hover { background: #1e4d72; }
.buy-col { text-align: center; width: 110px; }
</style>
<div class="licenses-info">
<p>What license do I need?</p>
<ul class="common">
<li>If you are using Better SplitButton in a non-commercial project, you can use it for free.</li>
<li>If you are using Better SplitButton in a commercial project, you need the Commercial License.</li>
<li>The Commercial License includes full source code and 1 year of free updates.</li>
</ul>
<p style="margin-top:20px"><a href="/support">Contact us</a> if you have any questions about licensing.</p>
</div>
</div>
</div>`;
---
<Base title={title} description={description} keywords={keywords}>
<Fragment set:html={rawContent} />
</Base>

View File

@@ -1,126 +1,158 @@
---
import Base from '../../layouts/Base.astro';
---
<Base title="Better Thumbnail Browser Pricing & Licensing" description="Pricing and licensing information for Better Thumbnail Browser .NET control.">
const title = "Licensing & Pricing for Better Thumbnail Browser - ComponentOwl";
const description = "Purchase thumbnail image viewing and browsing component for .NET. Single developer, 5-developer, site, and enterprise licenses available.";
const keywords = "better thumbnail browser pricing, better thumbnail browser license, buy better thumbnail browser, .net thumbnail component purchase";
const rawContent = `<div class="d-content-wrap">
<div class="order-content">
<h1>Better Thumbnail Browser — Pricing &amp; Licensing</h1>
<p class="section-info">Choose the license that best fits your needs.</p>
<h1>Licensing &amp; pricing for Better Thumbnail Browser</h1>
<p class="section-info">Purchase thumbnail image viewing and browsing component for .NET.</p>
<h2>Buy New Licenses</h2>
<ul id="buy-nav" class="nav">
<li><a href="better-thumbnail-browser.html" class="current">Buy new licenses</a></li>
<li><a href="better-thumbnail-browser.html">Renew license</a></li>
</ul>
<table>
<thead>
<div id="buy-panels">
<div class="panel" style="display: none">
<form action="https://secure.bmtmicro.com/servlets/Orders.ShoppingCart" method="get">
<input id="CID" name="CID" type="hidden" value="1830/12" />
<input id="CLR" name="CLR" type="hidden" value="0" />
<input class="product-id" id="PRODUCTID" name="PRODUCTID" type="hidden" value="" />
<table cellspacing="0">
<tr>
<th>License</th>
<th class="price">Price</th>
<th class="buy-col">Buy</th>
<th colspan="3">Single developer licenses</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Single developer license</strong> with 1 year subscription</td>
<td>Single developer license with 1 year subscription</td>
<td class="price">$295</td>
<td class="buy-col"><a href="https://secure.bmtmicro.com/servlets/Orders.ShoppingCart?CID=1830/12&PRODUCTID=18300112" class="btn-buy" target="_blank">Buy Now</a></td>
<td class="buy"><input class="buy" data-value="18300112" name="PRODUCTID" onclick="bmtForm(this)" type="submit" value="" /></td>
</tr>
<tr>
<td><strong>5 developer license</strong> with 1 year subscription</td>
<th colspan="3">5 developers licenses</th>
</tr>
<tr>
<td>5 developer license with 1 year subscription</td>
<td class="price">$845</td>
<td class="buy-col"><a href="https://secure.bmtmicro.com/servlets/Orders.ShoppingCart?CID=1830/12&PRODUCTID=18300113" class="btn-buy" target="_blank">Buy Now</a></td>
<td class="buy"><input class="buy" data-value="18300113" name="PRODUCTID" onclick="bmtForm(this)" type="submit" value="" /></td>
</tr>
<tr>
<td><strong>Site license</strong> with 1 year subscription</td>
<td class="price">$1,895</td>
<td class="buy-col"><a href="https://secure.bmtmicro.com/servlets/Orders.ShoppingCart?CID=1830/12&PRODUCTID=18300114" class="btn-buy" target="_blank">Buy Now</a></td>
<th colspan="3">Site licenses - use at 1 site (office or building)</th>
</tr>
<tr>
<td><strong>Site license with source code</strong> and 1 year subscription</td>
<td class="price">$3,995</td>
<td class="buy-col"><a href="https://secure.bmtmicro.com/servlets/Orders.ShoppingCart?CID=1830/12&PRODUCTID=18300115" class="btn-buy" target="_blank">Buy Now</a></td>
<td>Site license with 1 year subscription</td>
<td class="price">$1895</td>
<td class="buy"><input class="buy" data-value="18300114" name="PRODUCTID" onclick="bmtForm(this)" type="submit" value="" /></td>
</tr>
<tr>
<td><strong>Enterprise license with source code</strong> and 1 year subscription</td>
<td class="price">$8,995</td>
<td class="buy-col"><a href="https://secure.bmtmicro.com/servlets/Orders.ShoppingCart?CID=1830/12&PRODUCTID=18300116" class="btn-buy" target="_blank">Buy Now</a></td>
<td>Site license with source code and 1 year subscription</td>
<td class="price">$3995</td>
<td class="buy"><input class="buy" data-value="18300115" name="PRODUCTID" onclick="bmtForm(this)" type="submit" value="" /></td>
</tr>
<tr>
<th colspan="3">Enterprise license - use world-wide at unlimited sites</th>
</tr>
<tr>
<td>Enterprise license with source code and 1 year subscription</td>
<td class="price">$8995</td>
<td class="buy"><input class="buy" data-value="18300116" name="PRODUCTID" onclick="bmtForm(this)" type="submit" value="" /></td>
</tr>
</tbody>
</table>
<h2>Renew Subscription</h2>
</form>
<table>
<thead>
</div>
<div class="panel" style="display: none">
<form action="https://secure.bmtmicro.com/servlets/Orders.ShoppingCart" method="get">
<input id="CID" name="CID" type="hidden" value="1830/12" />
<input id="CLR" name="CLR" type="hidden" value="0" />
<input class="product-id" id="PRODUCTID" name="PRODUCTID" type="hidden" value="" />
<table cellspacing="0">
<tr>
<th>License</th>
<th class="price">Price</th>
<th class="buy-col">Renew</th>
<th colspan="3">Single developer licenses</th>
</tr>
</thead>
<tbody>
<tr>
<td>Renew <strong>single developer</strong> 1 year subscription</td>
<td>Renew single developer 1 year subscription</td>
<td class="price">$118</td>
<td class="buy-col"><a href="https://secure.bmtmicro.com/servlets/Orders.ShoppingCart?CID=1830/12&PRODUCTID=18300117" class="btn-buy" target="_blank">Renew</a></td>
<td class="buy"><input class="renew" data-value="18300117" name="PRODUCTID" onclick="bmtForm(this)" type="submit" value="" /></td>
</tr>
<tr>
<td>Renew <strong>5 developer</strong> 1 year subscription</td>
<th colspan="3">5 developers licenses</th>
</tr>
<tr>
<td>Renew 5 developer 1 year subscription</td>
<td class="price">$338</td>
<td class="buy-col"><a href="https://secure.bmtmicro.com/servlets/Orders.ShoppingCart?CID=1830/12&PRODUCTID=18300118" class="btn-buy" target="_blank">Renew</a></td>
<td class="buy"><input class="renew" data-value="18300118" name="PRODUCTID" onclick="bmtForm(this)" type="submit" value="" /></td>
</tr>
<tr>
<td>Renew <strong>site license</strong> 1 year subscription</td>
<th colspan="3">Site licenses - use at 1 site (office or building)</th>
</tr>
<tr>
<td>Renew site license 1 year subscription</td>
<td class="price">$758</td>
<td class="buy-col"><a href="https://secure.bmtmicro.com/servlets/Orders.ShoppingCart?CID=1830/12&PRODUCTID=18300119" class="btn-buy" target="_blank">Renew</a></td>
<td class="buy"><input class="renew" data-value="18300119" name="PRODUCTID" onclick="bmtForm(this)" type="submit" value="" /></td>
</tr>
<tr>
<td>Renew <strong>site license with source code</strong> 1 year subscription</td>
<td class="price">$1,598</td>
<td class="buy-col"><a href="https://secure.bmtmicro.com/servlets/Orders.ShoppingCart?CID=1830/12&PRODUCTID=18300120" class="btn-buy" target="_blank">Renew</a></td>
<td>Renews site license 1 year subscription with source code</td>
<td class="price">$1598</td>
<td class="buy"><input class="renew" data-value="18300120" name="PRODUCTID" onclick="bmtForm(this)" type="submit" value="" /></td>
</tr>
<tr>
<td>Renew <strong>enterprise license with source code</strong> 1 year subscription</td>
<td class="price">$3,598</td>
<td class="buy-col"><a href="https://secure.bmtmicro.com/servlets/Orders.ShoppingCart?CID=1830/12&PRODUCTID=18300121" class="btn-buy" target="_blank">Renew</a></td>
<th colspan="3">Enterprise license - use world-wide at unlimited sites</th>
</tr>
<tr>
<td>Renew enterprise license 1 year subscription with source code</td>
<td class="price">$3598</td>
<td class="buy"><input class="renew" data-value="18300121" name="PRODUCTID" onclick="bmtForm(this)" type="submit" value="" /></td>
</tr>
</tbody>
</table>
</form>
</div>
</div>
<div class="licenses-info">
<div class="block">
<h3>Includes Better ListView</h3>
<p>Every Better Thumbnail Browser license includes a Better ListView license at no extra cost.</p>
</div>
<div class="block">
<h3>Royalty-Free Distribution</h3>
<p>All licenses include royalty-free distribution rights.</p>
<p>All licenses are:</p>
<ul class="common">
<li>Life-time (non-expiring)</li>
<li>Royalty free</li>
</ul>
</div>
<div class="block last">
<h3>Priority Support</h3>
<p>All licenses include priority email support. We usually reply within 24 hours or sooner.</p>
<p>Subscription gets you:</p>
<ul class="common">
<li>Support</li>
<li>Updates</li>
</ul>
</div>
</div>
<p style="text-align:center; margin-top:30px">
<a href="/support">Contact us</a> if you have any questions about licensing or need a custom license.
</p>
</div>
<style>
.btn-buy {
display: inline-block;
background: #4a7400;
color: #fff !important;
padding: 6px 14px;
border-radius: 4px;
text-decoration: none;
font-size: 0.9em;
white-space: nowrap;
}
.btn-buy:hover { background: #3a5c00; }
.buy-col { text-align: center; width: 100px; }
h2 { margin-top: 2em; font-size: 1.2em; color: #4a7400; }
</style>
<div class="licenses-info">
<p>What license do I need?</p>
<ul class="common">
<li>If only 1 developer works on your current and future projects, then the "Single developer license" is for you.</li>
<li>If 2-5 developers works on your current and future projects, then the "5 developer license" is for you.</li>
<li>If more than 5 developers work on your current and future projects, then the "Site license" is for you.</li>
<li>If you have multiple teams in different locations, then the "Enterprise license" is for you.</li>
</ul>
</div>
</div>
</div>`;
---
<Base title={title} description={description} keywords={keywords}>
<Fragment set:html={rawContent} />
</Base>

View File

@@ -1,6 +1,6 @@
---
import Base from '../layouts/Base.astro';
const title = "Better ListView .NET control: Improved List View control for C# and VB.NET (Windows Forms)";
const title = "Sitemap - ComponentOwl.com";
const description = "Better ListView by Component Owl is a .NET WinForms control designed to replace the standard list view control included with C#/VB.net.";
const keywords = "list view, listview, list view control, list view component, .net list view, list view replacement, list view alternative, improved list view, enhanced list view";
const rawContent = `<div class="d-content-wrap">
@@ -17,115 +17,39 @@ const rawContent = `<div class="d-content-wrap">
<strong><a href="blog/page/6/index.html">Better ListView</a></strong>
<ul class="common">
<li>
<a href="blog/page/6/index.html">Overview</a>
</li>
<li>
<a href="better-listview/screenshots.html">Screenshots</a>
</li>
<li>
<a href="better-listview/comparison-table.html">Comparison</a>
</li>
<li>
<a href="better-listview/resources.html">Resources</a>
</li>
<li>
<a href="better-listview/story.html">Story</a>
</li>
<li><a href="blog/page/6/index.html">Overview</a></li>
<li><a href="better-listview/screenshots.html">Screenshots</a></li>
<li><a href="better-listview/comparison-table.html">Comparison</a></li>
<li><a href="better-listview/resources.html">Resources</a></li>
<li><a href="better-listview/story.html">Story</a></li>
</ul>
</li>
<li>
<strong><a href="better-thumbnail-browser.html">Better Thumbnail Browser</a></strong>
<ul class="common">
<li>
<a href="better-thumbnail-browser.html">Overview</a>
</li>
<li>
<a href="better-thumbnail-browser/screenshots.html">Screenshots</a>
</li>
<li><a href="better-thumbnail-browser.html">Overview</a></li>
<li><a href="better-thumbnail-browser/screenshots.html">Screenshots</a></li>
</ul>
</li>
<li>
<strong><a href="better-splitbutton.html">Better SplitButton</a></strong>
<ul class="common">
<li>
<a href="better-splitbutton.html">Overview</a>
</li>
<li>
<a href="better-splitbutton/screenshots.html">Screenshots</a>
</li>
<li><a href="better-splitbutton.html">Overview</a></li>
<li><a href="better-splitbutton/screenshots.html">Screenshots</a></li>
</ul>
</li>
<li>
<strong><a href="better-listview-express.html">Better ListView Express</a></strong>
<ul class="common">
<li>
<a href="better-listview-express.html">Overview</a>
</li>
<li>
<a href="better-listview-express/comparison-with-full-version.html">Comparison With Regular ListView and Full Version</a>
</li>
<li><a href="better-listview-express.html">Overview</a></li>
<li><a href="better-listview-express/comparison-with-full-version.html">Comparison With Regular ListView and Full Version</a></li>
</ul>
</li>
<li>
@@ -159,12 +83,7 @@ const rawContent = `<div class="d-content-wrap">
</ul>
</div>
</div>
</div>
`;
</div>`;
---
<Base title={title} description={description} keywords={keywords}>
<Fragment set:html={rawContent} />

View File

@@ -1,62 +1,67 @@
---
import Base from '../layouts/Base.astro';
---
<Base title="Help & Support - Component Owl" description="Get help and support for Better ListView, Better Thumbnail Browser and Better SplitButton .NET components.">
const title = "Help & Support - ComponentOwl";
const description = "Contact ComponentOwl support for Better ListView, Better Thumbnail Browser, and Better SplitButton .NET controls.";
const keywords = "support, help, contact, better listview, better thumbnail browser, better splitbutton";
const rawContent = `<div class="d-content-wrap">
<div class="support-content">
<h1>Help &amp; Support</h1>
<div class="left">
<p>If you have any questions, suggestions, bug reports, or need help with any of our products, please don't hesitate to contact us. We usually reply within 24 hours or sooner.</p>
<p>You can also email us directly at: <strong>support (at) componentowl (dot) com</strong></p>
<p>You can contact us at <span class="emil">support (at) componentowl (dot) com</span> or use the form below.</p>
<p>We will answer you as soon as possible, usually in 24 hours.</p>
<div class="contact-form-ct">
<div class="contact-form-wrap">
<form class="contact-form" action="#" method="post">
<div class="contact-form " id="contact-form">
<form action="http://www.componentowl.com/support_requests" class="new_support_request" id="new_support_request" method="post" onsubmit="if (!validate_contact_from(this)) return false; jQuery.ajax({data:jQuery.param(jQuery(this).serializeArray()) + '&amp;authenticity_token=' + encodeURIComponent('dJeFtbWrARc0arEomU+SG+XtypwJr2F4Kc9v14woStM='), dataType:'script', type:'post', url:'/support_requests'}); return false;"><div style="margin:0;padding:0;display:inline"><input name="authenticity_token" type="hidden" value="dJeFtbWrARc0arEomU+SG+XtypwJr2F4Kc9v14woStM=" /></div>
<input id="support_request_support_request_origin_id" name="support_request[support_request_origin_id]" type="hidden" value="541448280" />
<input id="support_request_subject" name="support_request[subject]" type="hidden" />
<input id="support_request_product_id" name="support_request[product_id]" type="hidden" />
<input id="callback" name="callback" type="hidden" value="feedback_sent" />
<input name="magicwand" type="hidden" value="you-shall-not-pass" />
<fieldset>
<label for="support_name">Your Name</label>
<input type="text" id="support_name" name="name" class="name" style="width:100%" />
<label for="support_email">Your Email</label>
<input type="email" id="support_email" name="email" class="email" style="width:100%" />
<label for="support_subject">Subject</label>
<input type="text" id="support_subject" name="subject" style="width:100%" />
<label for="support_message">Message</label>
<textarea id="support_message" name="message" class="message" style="width:100%"></textarea>
<div class="submit">
<button type="submit" class="dbtn">Send Message</button>
</div>
<ul>
<li><label for="support_request_name">Your Name</label><input class="name" id="support_request_name" name="support_request[name]" size="30" type="text" /></li>
<li><label for="support_request_email">Your Email (Required)</label><input class="email" id="support_request_email" name="support_request[email]" size="30" type="text" /></li>
<li><label for="support_request_message">Message (Required)</label><textarea class="message" cols="40" id="support_request_message" name="support_request[message]" rows="20"></textarea></li>
</ul>
</fieldset>
</form>
<div class="submit">
<span class="dbtn-c" id="send"><span class="dbtn-w"><input class="dbtn" name="commit" type="submit" value="&nbsp;&nbsp;&nbsp;Send&nbsp;&nbsp;&nbsp;" /></span></span>
</div>
</form></div>
</div>
</div>
<hr />
<p class="note">Please note: We provide support for our products only. For general .NET programming questions, please use <a href="http://stackoverflow.com">StackOverflow</a>.</p>
<p class="note">Please make sure that our reply will not be marked as spam by your filter (eg. add <span class="emil">support (at) componentowl (dot) com</span> to your white list) and that you typed your email address correctly, otherwise we will not be able to reply.</p>
</div>
<div class="right">
<h2>Better ListView</h2>
<p class="guide"><strong><a href="/better-listview/quick-start-guide.html" target="_blank">See Quick Start Guide</a></strong></p>
<p class="documentation"><strong><a href="/better-listview/documentation.html" target="_blank">See Documentation</a></strong></p>
<p class="reference"><strong><a href="/better-listview/class-reference.html" target="_blank">See Class Reference</a></strong></p>
<p class="guide"><strong><a href="better-listview/quick-start-guide.html" onclick="window.open(this.href); return false">See Quick Start Guide</a></strong></p>
<p class="documentation"><strong><a href="better-listview/documentation.html" onclick="window.open(this.href); return false">See Documentation</a></strong></p>
<p class="reference"><strong><a href="better-listview/class-reference.html" onclick="window.open(this.href); return false">See Class Reference</a></strong></p>
<p class="stackoverflow"><strong><a href="http://stackoverflow.com/questions/tagged/better-listview" onclick="window.open(this.href); return false">Better ListView on StackOverflow</a></strong></p>
<h2>Better Thumbnail Browser</h2>
<p class="guide"><strong><a href="/better-thumbnail-browser/quick-start-guide.html" target="_blank">See Quick Start Guide</a></strong></p>
<p class="documentation"><strong><a href="/better-thumbnail-browser/documentation.html" target="_blank">See Documentation</a></strong></p>
<p class="reference"><strong><a href="/better-thumbnail-browser/class-reference.html" target="_blank">See Class Reference</a></strong></p>
<p class="guide"><strong><a href="better-thumbnail-browser/quick-start-guide.html" onclick="window.open(this.href); return false">See Quick Start Guide</a></strong></p>
<p class="documentation"><strong><a href="better-thumbnail-browser/documentation.html" onclick="window.open(this.href); return false">See Documentation</a></strong></p>
<p class="reference"><strong><a href="better-thumbnail-browser/class-reference.html" onclick="window.open(this.href); return false">See Class Reference</a></strong></p>
<h2>Better SplitButton</h2>
<p class="guide"><strong><a href="/better-splitbutton/quick-start-guide.html" target="_blank">See Quick Start Guide</a></strong></p>
<p class="documentation"><strong><a href="/better-splitbutton/documentation.html" target="_blank">See Documentation</a></strong></p>
<p class="reference"><strong><a href="/better-splitbutton/class-reference.html" target="_blank">See Class Reference</a></strong></p>
</div>
<p class="guide"><strong><a href="better-splitbutton/quick-start-guide.html" onclick="window.open(this.href); return false">See Quick Start Guide</a></strong></p>
<p class="documentation"><strong><a href="better-splitbutton/documentation.html" onclick="window.open(this.href); return false">See Documentation</a></strong></p>
<p class="reference"><strong><a href="better-splitbutton/class-reference.html" onclick="window.open(this.href); return false">See Class Reference</a></strong></p>
</div>
</div>
</div>`;
---
<Base title={title} description={description} keywords={keywords}>
<Fragment set:html={rawContent} />
</Base>