ASP.NET Code Generator

Labels
AJAX(112) App Studio(7) Apple(1) Application Builder(245) Application Factory(207) ASP.NET(95) ASP.NET 3.5(45) ASP.NET Code Generator(72) ASP.NET Membership(28) Azure(18) Barcode(2) Barcodes(3) BLOB(18) Business Rules(1) Business Rules/Logic(140) BYOD(13) Caching(2) Calendar(5) Charts(29) Cloud(14) Cloud On Time(2) Cloud On Time for Windows 7(2) Code Generator(54) Collaboration(11) command line(1) Conflict Detection(1) Content Management System(12) COT Tools for Excel(26) CRUD(1) Custom Actions(1) Data Aquarium Framework(122) Data Sheet(9) Data Sources(22) Database Lookups(50) Deployment(22) Designer(177) Device(1) DotNetNuke(12) EASE(20) Email(6) Features(101) Firebird(1) Form Builder(14) Globalization and Localization(6) How To(1) Hypermedia(2) Inline Editing(1) Installation(5) JavaScript(20) Kiosk(1) Low Code(3) Mac(1) Many-To-Many(4) Maps(6) Master/Detail(36) Microservices(4) Mobile(63) Mode Builder(3) Model Builder(3) MySQL(10) Native Apps(5) News(18) OAuth(9) OAuth Scopes(1) OAuth2(13) Offline(20) Offline Apps(4) Offline Sync(5) Oracle(11) PKCE(2) Postgre SQL(1) PostgreSQL(2) PWA(2) QR codes(2) Rapid Application Development(5) Reading Pane(2) Release Notes(183) Reports(48) REST(29) RESTful(29) RESTful Workshop(15) RFID tags(1) SaaS(7) Security(81) SharePoint(12) SPA(6) SQL Anywhere(3) SQL Server(26) SSO(1) Stored Procedure(4) Teamwork(15) Tips and Tricks(87) Tools for Excel(2) Touch UI(93) Transactions(5) Tutorials(183) Universal Windows Platform(3) User Interface(338) Video Tutorial(37) Web 2.0(100) Web App Generator(101) Web Application Generator(607) Web Form Builder(40) Web.Config(9) Workflow(28)
Archive
Blog
ASP.NET Code Generator
Sunday, September 14, 2008PrintSubscribe
Microsoft SQL Server 2008 Support

Several users have reported the following error when trying to generate a project with Microsoft SQL Server 2008.

System.InvalidOperationException
The Writer is closed or in error state.

The exception has been raised by ADO.NET when trying to extract user-defined types from the database. File [My Documents]\Code OnTime\Library\CodeOnTime.ModelMap.xml defines a collection of queries that are extracting database information and storing it in the PROJECTTYPE.Metadata.xml file in the root of your project. We have changed SQL Server data discovery entry to exclude UserDefinedTypes as shown in this snippet.

<modelMap>
  <provider providerName="System.Data.SqlClient">
    <collection name="*" exclude="Users,Databases,UserDefinedTypes"/>
    <collection name="$TableSchemas"/>
    <query name="Tables">select * from information_schema.tables</query>
    <query name="Columns">select * from information_schema.columns</query>
    .......

This has eliminated the problem. The fix has been deployed and will be automatically downloaded when you start Code OnTime Generator. None of the current projects is supporting user-defined types and this does not affect any of the available features.

If you are creating a brand new project with Microsoft SQL Server 2008 then metadata discovery should work fine if you have installed the update or downloaded the code generator after the publication of this post.

If you did experience this problem then please click on open link next to the name of your project on the main page of code generator. Delete Error.PROJECTTYPE.Metadata.xml and PROJECTTYPE.Metadata.xml files and generate the project again. If you project type is Aquarium Express then the metadata file is DataAquarium.Metadata.xml.

Alternatively you can open your project and navigate to Database Connection page where the error message is displayed. Click on the link 'Click here if your database has changed and you would like to refresh the cached metadata'. This will delete the file with meta data and will guarantee that your project has been generated with the latest database changes.

Please report any errors or suggestions at http://codeontime.com/contactus.aspx. You can download Code OnTime Generator at http://codeontime.com/download.aspx.

Wednesday, August 20, 2008PrintSubscribe
"With Events" Error When Business Reports Are Enabled

Visual Basic developers were experiencing a code compilation error when generating a Web Form Builder project with business object reports. Three reporting link buttons on the business object gird user controls allow to print the content of the grid with the currently applied data filters in Adobe PDF, Microsoft Excel, and TIFF image format. These buttons were incorrectly referring to the shared event handler.

The problem has been fixed. The generated code now reads as the following:

Protected Sub RenderReportCommand(ByVal e As CommandEventArgs)
        ApplyDataFilter()
        Dim showLines As String = "True"
        If (CType(e.CommandArgument, String) = "Excel") Then
            showLines = "False"
        End If
        ReportUtility.CreateReport(CType(e.CommandArgument, String), "~/Reports/Customers.rdlc", _
            New ReportParameter() {New ReportParameter("ShowLines", showLines)}, _
            SqlDataSource1, GridView1)
    End Sub

    Protected Sub RenderReport1_Command(ByVal sender As Object, _
                                        ByVal e As CommandEventArgs) Handles RenderReport1.Command
        RenderReportCommand(e)
    End Sub

    Protected Sub RenderReport2_Command(ByVal sender As Object, _
                                        ByVal e As CommandEventArgs) Handles RenderReport2.Command
        RenderReportCommand(e)
    End Sub

    Protected Sub RenderReport3_Command(ByVal sender As Object, _
                                        ByVal e As CommandEventArgs) Handles RenderReport3.Command
        RenderReportCommand(e)
    End Sub

This problem has not been affecting Visual C# developers.

If you were experiencing this problem then start CodeOnTime.exe and you will be automatically prompted to download the update. Generate the project with reports and enjoy.

Wednesday, August 20, 2008PrintSubscribe
Alternative Unique Key Fix

Code OnTime Generator is using a collection of queries to interrogate a database schema when any code generator project involving database interaction is generated. File [My Documents]\Code OnTime\Library\_Config \CodeOnTime.ModelMap.xml defines a collection of queries that are used to discover the database metadata. Data provider System.Data.SqlClient  has an entry named PrimaryKeyColumns that was incorrectly determining the primary key columns. The query has been retrieving both primary keys and alternative unique keys. Alternative unique keys should be ignored.

Generated projects were treating fields included in the alternative unique keys as if they were the fields of the primary key.

We have replaced the query with the following:

select kcu.*
from information_schema.key_column_usage kcu 
    inner join information_schema.table_constraints tc on
        kcu.constraint_catalog = tc.constraint_catalog and
        kcu.constraint_schema = tc.constraint_schema and
        kcu.constraint_name = tc.constraint_name 
where 
    tc.constraint_type = 'PRIMARY KEY'

The fix has been deployed. Simply start CodeOnTime.exe and you will be prompted to download the update.

If you do have a database table with any fields included in a UNIQUE INDEX then open you project and proceed to the Database Connection section of your project. There is a link "Click here if your database has changed and you would like to refresh the cached metadata." Click on the link to reset the metadata and generate the project again. The problem will go away.