Click here to Skip to main content
12,247,901 members (58,615 online)
Click here to Skip to main content

Tagged as

Stats

32.6K views
1.2K downloads
64 bookmarked
Posted

A SOA Approach to Dynamic DOCX-PDF Report Generation - Part 1

, 23 Aug 2010 CDDL
Generating docx reports in a client-server architecture, without using MS Office.
DocxReportGenerator
DocxGenerator.PL.Web
App_Data
bin
DocxGenerator.PL.Web.dll
DocxGenerator.PL.Web.pdb
css
DocxGenerator.PL.Web.csproj.user
obj
Debug
DocxGenerator.PL.Web.dll
DocxGenerator.PL.Web.pdb
Refactor
TempPE
Service References.SvcDocxGenerator.Reference.cs.dll
Service References.SvcDoxOneToOneGenerator.Reference.cs.dll
Service References.SvcDynamicDocxGenerator.Reference.cs.dll
Properties
Reports
rep_20100722_155206510_83.docx
rep_20100722_155434073_83.docx
rep_20100722_164324748_83.docx
Service References
SvcDynamicDocxGenerator
configuration.svcinfo
configuration91.svcinfo
DynamicDocxGeneratorService.disco
DynamicDocxGeneratorService.wsdl
Reference.svcmap
DocxGenerator.SL.WCF
App_Data
template.docx
bin
DocxGenerator.SL.WCF.dll
DocxGenerator.SL.WCF.csproj.user
DynamicDocxGeneratorService.svc
Properties
temp
DocxGenerator.PL.Web
App_Data
bin
DocxGenerator.PL.Web.dll
DocxGenerator.PL.Web.pdb
css
DocxGenerator.PL.Web.csproj.user
Properties
Reports
Service References
SvcDynamicDocxGenerator
configuration.svcinfo
configuration91.svcinfo
DynamicDocxGeneratorService.disco
DynamicDocxGeneratorService.wsdl
Reference.svcmap
DocxGenerator.SL.WCF
App_Data
printerSettings.ini
template.docx
bin
DocxGenerator.SL.WCF.dll
DocxGenerator.SL.WCF.pdb
DocxGenerator.SL.WCF.csproj.user
DynamicDocxGeneratorService.svc
Properties
temp
testApp2
DocxGenerator.PL.Web
App_Data
bin
DocxGenerator.PL.Web.dll
DocxGenerator.PL.Web.pdb
css
DocxGenerator.PL.Web.csproj.user
Properties
Reports
Service References
SvcDynamicDocxGenerator
configuration.svcinfo
configuration91.svcinfo
DynamicDocxGeneratorService.disco
DynamicDocxGeneratorService.wsdl
Reference.svcmap
DocxGenerator.SL.WCF
App_Data
printerSettings.ini
template.docx
bin
DocxGenerator.SL.WCF.dll
DocxGenerator.SL.WCF.pdb
DocxGenerator.SL.WCF.csproj.user
DynamicDocxGeneratorService.svc
Properties
temp
DocxReportGenerator.suo
<?xml version="1.0"?>
<!--
    Nota: come alternativa alla modifica manuale del file, è possibile utilizzare lo 
    strumento di amministrazione Web per configurare le impostazioni dell'applicazione. Utilizzare
    il comando Configurazione ASP.NET del menu Sito Web di Visual Studio.
    Un elenco completo di impostazioni e commenti è disponibile nel 
    file machine.config.comments che si trova in genere in 
    \Windows\Microsoft.Net\Framework\v2.x\Config 
-->
<configuration>
	<configSections>
		<sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
			<sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
				<section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
				<sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
					<section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="Everywhere"/>
					<section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
					<section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
					<section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
				</sectionGroup>
			</sectionGroup>
		</sectionGroup>
	</configSections>
  <appSettings>
    <add key="PdfPrinter" value="Bullzip PDF Printer" />
  </appSettings>
	<connectionStrings/>
	<system.web>
		<!--
            Impostare compilation debug="true" per inserire i simboli di 
            debug nella pagina compilata. Poiché tale 
            operazione ha effetto sulle prestazioni, impostare questo valore su true solo 
            durante lo sviluppo.
        -->
		<compilation debug="true">
			<assemblies>
				<add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
				<add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
			</assemblies>
		</compilation>
		<!--
            La sezione <authentication> consente di configurare 
            la modalità di autenticazione della protezione utilizzata da 
            ASP.NET per identificare un utente in ingresso. 
        -->
		<authentication mode="Windows"/>
		<!--
            La sezione <customErrors> consente di configurare  
            l'operazione da eseguire in caso di errore non gestito 
            durante l'esecuzione di una richiesta. In particolare, 
            consente agli sviluppatori di configurare le pagine di errore HTML 
            in modo che vengano visualizzate al posto dell'analisi dello stack dell'errore.

        <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
            <error statusCode="403" redirect="NoAccess.htm" />
            <error statusCode="404" redirect="FileNotFound.htm" />
        </customErrors>
        -->
		<pages>
			<controls>
				<add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
			</controls>
		</pages>
		<httpHandlers>
			<remove verb="*" path="*.asmx"/>
			<add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
			<add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
			<add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/>
		</httpHandlers>
		<httpModules>
			<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
		</httpModules>
	</system.web>
	<system.codedom>
		<compilers>
			<compiler language="c#;cs;csharp" extension=".cs" warningLevel="4" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
				<providerOption name="CompilerVersion" value="v3.5"/>
				<providerOption name="WarnAsError" value="false"/>
			</compiler>
		</compilers>
	</system.codedom>
	<!--
        La sezione system.webServer è necessaria per elaborare ASP.NET AJAX in Internet
        Information Services 7.0. Tale operazione non è necessaria per versioni precedenti di IIS.
    -->
	<system.webServer>
		<validation validateIntegratedModeConfiguration="false"/>
		<modules>
			<add name="ScriptModule" preCondition="integratedMode" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
		</modules>
		<handlers>
			<remove name="WebServiceHandlerFactory-Integrated"/>
			<add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
			<add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
			<add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
		</handlers>
	</system.webServer>
	<system.serviceModel>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
    <services>
       <service behaviorConfiguration="DocxGenerator.SL.WCF.DynamicDocxGeneratorServiceBehavior"
          name="DocxGenerator.SL.WCF.DynamicDocxGeneratorService">
          <endpoint address="" binding="wsHttpBinding" contract="DocxGenerator.SL.WCF.IDynamicDocxGeneratorService">
             <identity>
                <dns value="localhost" />
             </identity>
          </endpoint>
          <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
       </service>
    </services>
		<behaviors>
     <serviceBehaviors>
      <behavior name="DocxGenerator.SL.WCF.DynamicDocxGeneratorServiceBehavior">
       <serviceMetadata httpGetEnabled="true" />
       <serviceDebug includeExceptionDetailInFaults="false" />
      </behavior>
     </serviceBehaviors>
  </behaviors>
	</system.serviceModel>
</configuration>

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Common Development and Distribution License (CDDL)

Share

About the Author

Erion Pici
Software Developer (Senior)
Italy Italy
I've been involved in object-oriented software development since 2006, when I graduated in Information and TLC Engineering at the Università degli Studi di Perugia, in Italy. I've been working for several software companies / departments, mainly on Microsoft and Sun technologies. My favourite programming language is C#, next comes Java.
I love design patterns and when I need to resolve a problem, I try to get the best solution, which is often not the quickest one.

"On the best teams, different individuals provide occasional leadership, taking charge in areas where they have particular strengths. No one is the permanent leader, because that person would then cease to be a peer and the team interaction would begin to break down. The structure of a team is a network, not a hierarchy ..."
My favourite team work quotation by DeMarco - Lister in Peopleware

You may also be interested in...

| Advertise | Privacy | Terms of Use | Mobile
Web02 | 2.8.160426.1 | Last Updated 23 Aug 2010
Article Copyright 2010 by Erion Pici
Everything else Copyright © CodeProject, 1999-2016
Layout: fixed | fluid