{"id":1486,"date":"2007-04-23T22:42:42","date_gmt":"2007-04-24T01:42:42","guid":{"rendered":"http:\/\/www.hoogervorst.ca\/arthur\/?p=1486"},"modified":"2007-10-06T09:53:00","modified_gmt":"2007-10-06T12:53:00","slug":"minor-finer","status":"publish","type":"post","link":"http:\/\/www.hoogervorst.ca\/arthur\/?p=1486","title":{"rendered":"Minor-Finer"},"content":{"rendered":"<p><span class=\"dropcap\">I<\/span> added a minor project to the &#8216;Current Project&#8217; section (<a href=\"http:\/\/www.hoogervorst.ca\/arthur\/?page_id=1484\">Right here<\/a>), a program in C# that generates classes based on table meta-data. It&#8217;s simple and it works: there are a couple of tricks how to collect metadata from ODBC datasources.\n<\/p>\n<p>Currently, I used &#8216;hardcoded&#8217; datatype conversion (SQL_xxx -> Dot.Net type): I was in a rush and decided to (conveniently) forget about using reflection. That said, I keep forgetting about my linefeeds [sorry], but then, your Visual Studio formats everything nicely out anyway.\n<\/p>\n<p>This reminds me that I&#8217;ve downloaded &#8216;Orcas&#8217; yesterday, Microsoft&#8217;s CTP of the new Visual Studio IDE. It comes with a visual &#8216;class designer&#8217; that allows you to create classes from tables like the generator above does, but obviously (at this stage) that feature only supports the typical MS-like database interfaces. Not much of a help if you work in other environments. The only interesting items are the new C#\/.Net language extensions, like LINQ and XAML. And yes, the Dev Team finally decided to add a Compile to Target feature, which allows you to compile and link your executables with other .Net Frameworks.\n<\/p>\n<p>Meh.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I added a minor project to the &#8216;Current Project&#8217; section (Right here), a program in C# that generates classes based on table meta-data. It&#8217;s simple and it works: there are a couple of tricks how to collect metadata from ODBC &hellip; <a href=\"http:\/\/www.hoogervorst.ca\/arthur\/?p=1486\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[4,15],"tags":[56,88,55],"_links":{"self":[{"href":"http:\/\/www.hoogervorst.ca\/arthur\/index.php?rest_route=\/wp\/v2\/posts\/1486"}],"collection":[{"href":"http:\/\/www.hoogervorst.ca\/arthur\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.hoogervorst.ca\/arthur\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.hoogervorst.ca\/arthur\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/www.hoogervorst.ca\/arthur\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1486"}],"version-history":[{"count":0,"href":"http:\/\/www.hoogervorst.ca\/arthur\/index.php?rest_route=\/wp\/v2\/posts\/1486\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.hoogervorst.ca\/arthur\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1486"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.hoogervorst.ca\/arthur\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1486"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.hoogervorst.ca\/arthur\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1486"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}