mvc open pdf in browser : Best pdf to jpg converter online Library control class asp.net azure wpf ajax Expert_.NET_Delivery_Using_NAnt_and_CruiseControl_.NET_20051-part1056

Investigating CodeSmith 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282
Using Properties 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283
Generating Multiple Files 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
Investigating XSLT 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
Generating Multiple Output Files with XSLT 
. . . . . . . . . . . . . . . . . . . 292
Targets for Generation 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
CruiseControl Configuration Files 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
Build Files 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304
Deployment Files 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310
Managing Generation Automatically 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
A New CruiseControl Instance 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315
Summary 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318
Further Reading 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318
CHAPTER 10 
Closing Thoughts 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
What Have We Done? 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
The Problem 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
The Solution Proposal:Design to Deliver 
. . . . . . . . . . . . . . . . . . . . . 320
The Solution Definition 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323
The Solution Implementation 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
Best Practices 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
Process
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
Standards
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328
NAnt
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328
CruiseControl.NET
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
Other Factors 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
Closing Comments 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
Tool Selection 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
It Is All About the Standards 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
Start Small and Work Under a Banner 
. . . . . . . . . . . . . . . . . . . . . . . . 331
Refactoring to Efficiency 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332
Complex Scenarios 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332
Views on the Future 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333
Regarding MSBuild 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333
Other Directions 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334
Conclusion 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335
CONTENTS
xiii
Best pdf to jpg converter online - Convert PDF to JPEG images in C#.net, ASP.NET MVC, WinForms, WPF project
How to convert PDF to JPEG using C#.NET PDF to JPEG conversion / converter library control SDK
convert .pdf to .jpg; c# convert pdf to jpg
Best pdf to jpg converter online - VB.NET PDF Convert to Jpeg SDK: Convert PDF to JPEG images in vb.net, ASP.NET MVC, WinForms, WPF project
Online Tutorial for PDF to JPEG (JPG) Conversion in VB.NET Image Application
conversion of pdf to jpg; pdf to jpeg
APPENDIX A 
A Fistful of Tools 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337
Software Dependencies 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337
Tool Organization 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338
Automating the Organization 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339
Core Tools 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343
Script Editing 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344
Other Tools 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346
APPENDIX B 
NAnt Sweeper
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
Playing NAnt Sweeper 
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350
INDEX
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355
CONTENTS
xiv
Online Convert PDF to Jpeg images. Best free online PDF JPEG
Online PDF to JPEG Converter. Download Free Trial. Convert a PDF File to JPG. Drag and drop your PDF in the box above and we'll convert the files for you.
changing pdf to jpg file; advanced pdf to jpg converter
Online Convert Jpeg to PDF file. Best free online export Jpg image
Online JPEG to PDF Converter. Download Free Trial. Convert a JPG to PDF. You can drag and drop your JPG file in the box, and then start
changing pdf to jpg on; batch convert pdf to jpg
Foreword 
T
he success of any open source project is contingent on the strength of its user community.
On the CruiseControl.NET project, we have been fortunate to have a strong community of
users. As one of the authors of CCNet, I can honestly say that the formation of this community
has had relatively little to do with us; it has been built up and fostered primarily by the efforts
of its members. These days most of the enhancements, feature requests, and email traffic are
driven not by the committers, but by the community at large. The level of activity is such that
the committers have a hard time keeping up with all the submitted patches.
It is in this spirit that I view Marc’s book: it is an example of how community members
support and give back to the community. This book is an effort to help fellow users of
CruiseControl.NET and NAnt set up, understand, and get the most out of their tools. It is a
comprehensive overview of both tools and is full of practical advice for applying them to
yourproject. Through the use of a detailed case study, Marc demonstrates how to build up
afoundation for automating a project’s build and deployment process.
The goal of any software development project is to deliver valuable, working software into
the hands of its users. This is the guiding principle behind Marc’s “Design to Deliver” approach,
and it is the objective that led to the creation of both CruiseControl.NET and NAnt. I hope that
you find both the book and these tools useful in helping to achieve this end.
Owen Rogers
Author of CruiseControl.NET
xv
C# WPF PDF Viewer SDK to convert and export PDF document to other
Best PDF Viewer control as well as a powerful .NET WinForms application to image file formats with high quality, support converting PDF to PNG, JPG, BMP and
.pdf to .jpg online; pdf to jpeg converter
C# PDF Convert to Images SDK: Convert PDF to png, gif images in C#
Best PDF converter SDK for Visual Studio .NET for converting PDF to image in C#.NET Support exporting PDF to multiple image forms, including Jpg, Png, Bmp
pdf to jpg converter; change pdf to jpg image
About the Author
MARC HOLMESis one of the lucky ones—he was born into a generation of home computing.
His first computer, acquired at age ten, was a Commodore Vic-20. This was followed up with a
Commodore 64 and Marc’s first programming project: “SpaceBats.” He has willingly been
chained to a computer since then. 
Having studied computer science and artificial intelligence at university, he has devoted
his time to working and developing technology in various industries, including retail, semi-
conductors, and media. As a developer, he has written numerous systems, from WAP-based
“m-commerce” applications to media management systems.
Since the dotcom era, Marc has concentrated on software design and engineering
processes, following closely the introduction of the .NET platform. This focus currently forms
the basis of his day-to-day activities. Passionate about the provision of software engineering
processes as the glue that binds and industrializes software development, he is a firm believer
in software as a commodity.
Currently, Marc is head of application development at a global media corporation. He
and the development team oversee dozens of systems, from small “brochureware” sites to sig-
nificant enterprise systems for human resources, customer relationship management, and
logistics operations. He can also be found participating in the “blogosphere” and in various
newsgroups and discussion groups. And in his spare time, he enjoys cooking, fine wine, and
occasional interaction with other humans.
xvii
VB.NET PDF - Convert PDF with VB.NET WPF PDF Viewer
Best WPF PDF Viewer control as well as a powerful PDF converter. PDF to image file formats with high quality, support converting PDF to PNG, JPG, BMP and GIF.
.pdf to .jpg converter online; convert pdf photo to jpg
VB.NET Create PDF from images Library to convert Jpeg, png images
Best and professional image to PDF converter SDK for Visual Studio .NET. Support create PDF from multiple image formats in VB.NET, including Jpg, Png, Bmp
batch pdf to jpg; change pdf to jpg on
About the Technical Reviewer
BRIAN NANTZis currently employed with Cornerstone Consulting. He has
developed Microsoft solutions for companies in both the medical and
security industries. Brian has written various .NET books, including Expert
Web Services Security in the .NET Platform(Apress, 2004) and Open Source
.NET Development:Programming with NAnt,NUnit,NDoc,and More
(Addison-Wesley Professional, 2004). He lives with his wife and three
children in the Milwaukee, Wisconsin area.
xix
C# Create PDF from images Library to convert Jpeg, png images to
Best and professional C# image to PDF converter SDK for Visual Studio .NET. Batch convert PDF documents from multiple image formats, including Jpg, Png, Bmp, Gif
convert .pdf to .jpg online; change pdf file to jpg
VB.NET PDF Convert to Images SDK: Convert PDF to png, gif images
Best adobe PDF to image converter SDK for Visual Studio .NET. Convert PDF documents to multiple image formats, including Jpg, Png, Bmp, Gif, Tiff, Bitmap
conversion pdf to jpg; convert multi page pdf to jpg
Acknowledgments
T
here was a time when I thought, “You know, I could write one of these books—can’t be
toohard.”
I guess I was both right and wrong: I have done it, but it was hard. In fact, it would have
been impossible without the help of a whole bunch of people.
I’d like to say thanks to the gang at Apress: Gary Cornell for the deal; Ewan Buckingham
for listening to my idea and believing in it; Beth Christmas for her guidance, counsel, and
always positive attitude; Liz Welch for making sense of my words jumbled; Katie Stence and
Dina Quan for making it all look great; Beckie, Tina, Glenn, and everyone else who helped
meout.
I need to say a big thank you to my colleagues at BBC Worldwide who offered continuous
support and interest. You’re a great bunch of people. In particular, thanks to Ben Lovell for his
efforts with the source code and for convincing me that I could actually do this. Also thanks
toAlex Hildyard for his feedback and for NAnt Sweeper—the oddest version of that game
I’veseen. 
There were many others who played their part too. Most important are the creators of the
tools that have inspired me to write this book. By doing what they do in the selfless way they
do it, these folks benefit the development community through their brilliance. I can’t list all
ofthe contributors here—thanks to you all—but in particular significant thanks is given to
Owen Rogers for his efforts with CruiseControl.NET, Gert Driesen for his unceasing attention
to NAnt, and Bart Read and Neil Davidson at Red Gate Software Ltd. for their invaluable help
and feedback.
Finally, a huge thanks to Brian Nantz (which is the most appropriate name I can imagine!),
who has provided great feedback and wisdom throughout the whole process as the technical
reviewer. 
xxi
Introduction
D
elivering software? If you have bought this book, or grabbed it from a colleague’s desk, or
even found it in the street and are looking at it with some interest, then I think it is quite likely
that you have been struggling with the same problems as I have for some time.
Successful build and release processes seem to be easy when given some casual thought.
In principle, moving and configuring a Windows or web application from development
through testing and staging environments ultimately to production is quite straightforward.
In practice, though—as I am sure you have found—the process can be considerably more
complex.
An application can have many aspects that require configuration as well as many assets
to move around and store. A developer can easily miss these aspects. These factors can also go
unnoticed for some time, and only cause a problem when the assets are needed “right now.”
Builds and releases can take an extended amount of time. They will not usually “fail” in
the sense that a piece of software is not delivered to the customer, but they will fail in various
other ways. They may gradually add risk and complexity to the processes and reduce confi-
dence in the platform. For example, they may rely on Bob being available because only he
knows the configuration file.
I am constantly disappointed by projects where difficulties are introduced by failing to
look at these processes, among others. Some developers do not see these aspects of work as
core to their role. Teams may produce excellent code and present some clever innovation in
the software, only to find out that the development platform contains hundreds of zip files
named things like “DontDeleteRegressionJustInCase” or a dozen SQL databases with dates
appended to their name on a virtual server that now cannot be rebuilt because these assets
have become an integral part of the system. And no one can be sure that they arean integral
part of the system—Bob is on leave!
Success came to my own delivery processes through the use of two fundamental tools:
NAnt and CruiseControl.NET. I was introduced to both through murmurings on the Internet
and one or two searches for specific issues. Since discovering and learning how to use and
develop both tools, I have started to think that even the ugliest of delivery problems can be
solved.
NAnt is a tool that has me marveling at the beauty and simplicity of programming. Some-
thing so seemingly simple can do an amazing amount of work, and can do it in a countless
number of ways. One of the core aims of this book is not to present every available option—
which I could not do if I wanted to—but to describe some methods that have worked for me
and for teams I am associated with. You may find that they work equally well for you, you may
find they do not, or you may find you have stumbled across a much better way of doing things
(if so, please share!). My main hope is that this book gives you some ideas for pushing forward
your own successful processes.
xxiii
CruiseControl.NET is also an excellent system. The framework and utility it provides to a
collection of NAnt-based projects gives the user a benefit that cannot be underestimated. The
promise of continuous integration is a bold one, but the tool enables centralized control of
delivery processes quickly and relatively satisfactorily. It will only get better, too.
Aside from the actual processes, I hope that you gain some theoretical and practical
knowledge of the toolsets utilized in this book. It has been a pleasant struggle to implement
these practices, and as you will see there are still questions left unanswered.
The Aims of the Book
I want to point out the purpose of the book so that it is clear from the outset. The book is
about providing ideas, practices, and a platform for standardizing approaches to build and
deploy processes.
It is not supposed to be a comprehensive guide to NAnt, or CruiseControl.NET, or even
any aspects of the .NET platform. NAnt and Cruise Control.NET have not matured fully yet—
they are not even considered version 1 releases by their authors—and will undoubtedly see
significant changes. They have even seen some changes during the writing of this book.
At the same time, this book is not about being exceptionally clever with coding/scripting
techniques in a “cunning algorithm” kind of way. If you master the tools, then you will be able
to do so with your scripts as the inspiration hits you. Rather, this book emphasizes being
clever enough to complete the specified process across many projects in the same way.It is
about introducing standards for solution architectures that can be applied successfully with-
out being too onerous.
Above all, this book offers a practical approach to the problems involved in delivering
software. We look at actual applicable solutions. Sometimes they may be best, and sometimes
not, but the solutions are always practical.
A Note on Organization
Using NAnt, and scripting languages in general, introduces a lot of, well, scripts into your
environment. All of this is great as long as you are organizing your scripts effectively. The
success of many of the practical implementations I have experienced has hinged on the
organization of scripts and assets to support the process.
I have attempted to ensure that the organization of the book code is such that you will
beable to use it on your own system with minimum changes. However, since there are a lot
ofsoftware dependencies—some deliberate, some as side effects—then some configuration
work may be necessary. This is also true if you are adopting the tools yourself. I strongly urge
you to consider careful organization of tools and storage for your own processes to facilitate
successful development. Appendix A discusses this a little further.
A Note on Open Source Software
I am a huge proponent of any kind of open source activity.
Apart from my .NET hat, I work with a team responsible for developing a Java/J2EE-based
application sitting on Solaris and Linux platforms. Sometimes I gaze with a little jealousy at
the fantastic freely available open source widgets they get to use. The world certainly appears
to be their oyster. (Sometimes I just press F5 and think about how good Visual Studio .NET is
and smile to myself.) There are many tools of this kind for .NET now and surely they will only
INTRODUCTION
xxiv
increase in number over time. Naturally, I will be using some of these tools over the course of
this book.
There is always a snag, or at least a potential snag, though. Popular software of this kind
isdeveloped continuously and released often. In principle, and sometimes in practice, this is
great as new features are added and bugs fixed promptly. If you get yourself involved, you
could contribute even if it is just an idea.  
The flip side to this is that sometimes the software does not go where you want it to, or it
is not stable enough to make you feel comfortable using it and knowing it. It can be easy to
feel as though you need the latest build or you are somehow missing out. I certainly started
out in this way.
To allay this fear, I tend to concentrate on one version of a piece of software as long as it
suits my needs. This approach allows me to ensure that my own work with it is stable and that
I understand the tool fully. 
The upshot of this is that by the time you read this book versions of the software will have
moved on and will be doing new things. In lots of ways, I hope this is so, because it will save
you from having to do some of the “hacking” described in the book. On the other hand, the
tools might not be helping any more, something might have taken their place, or new issues
might be introduced. Tool version xdoes not work with other tool version y,and so on. 
So the solutions, practices, and framework laid out here are based on a point in time in
afairly fast-moving environment. I suggest that you do the same thing, whether or not it is
atthe same point in time. You can always be mindful of changes and remain involved in a
research and development sense, but you must ensure that at some point there is some stabil-
ity and utility to your efforts in this area—which is surely the purpose of the activity.
A Note on Technology
Deciding on the technologies to use for the book was actually quite easy: I use what I am
experienced with and what is and has been applicable in environments I’ve been involved in.
The book therefore concentrates on the following areas:
.NET using C#.The example projects for delivery and the extensions to NAnt and the like
are written in C# through the use of Visual Studio .NET.
Visual SourceSafe.This is probably a more controversial choice. Visual SourceSafe is
usually criticized for various features, or more accurately the lack of them. Generally,
though, I have worked in teams using Visual SourceSafe more often than not. Changing
source control systems to others supported by NAnt and CruiseControl.NET should not
be a problem as there are no real Visual SourceSafe–specific features in the examples.
NAnt.NAnt is my preferred tool for the automation of delivery—you may already have
guessed this. Bear in mind that other options are out there. It is unlikely that this text will
help you with those, however. I started with 0.84 and then moved to 0.85 RC1 and various
nightly builds of NAnt. Again, because we stick to core NAnt features most of the time,
changes to scripts as future releases arrive should be minimal.
CruiseControl.NET.To deliver continuous integration I have chosen to use CruiseCon-
trol.NET. Again, other options are available. Many of these also harness NAnt, and so if
you do choose a different solution, much of this text will still be applicable with some
adapting.
INTRODUCTION
xxv
More specifically, Table 1 shows the versions of technologies I use throughout the book.
Table 1.Technology Versions
Technology
Version
Visual Studio .NET
2003 (and therefore .NET Framework version 1.1)
Visual SourceSafe
6.0d
NAnt
0.85 RC2
NAntContrib
0.85 RC2
CruiseControl.NET
0.8
Red Gate SQL Bundle
3.3
CodeSmith
2.6 (studio version)
Additionally, many other pieces of software are used to handle various aspects of the
process, or as productivity aids. Appendix A in this book covers the majority of these products.
What Does the Book Cover?
Deciding on the order of things I wanted to cover has been one of the most difficult aspects
ofwriting this book. When I was working on these processes I had a fairly clear, if slightly
abstract, end goal: improve confidence, speed, and reliability of the build and release processes.
I am sure you probably have something similar in mind. The devil is in the details, though. 
Therefore, I have tried to describe a scenario similar to those I have faced. Elements that
needed tackling are combined into one story. From there I have taken the book on a journey
to look at solutions to the issues raised in the scenario. 
The first three chapters are used to consider the needs and practicalities for the introduc-
tion of automated delivery processes. We also get a chance to study NAnt in a little detail so
that we understand how it can be utilized in the final processes.
Chapter 1,“A Context for Delivery”:Here we set out the initial processes Etomic (our
fictitious development company) use for development—specifically build and deploy—
and we discuss the successes and failures they have suffered. We will see how Etomic has
tackled the issues, and we join them as they are about to move to automation for build
and deploy processes. From there we will identify some areas for attention and then plan
how to attack these. We will use these requirements as a basis for discussion throughout
the book.
Chapter 2,“Dissecting NAnt”:With a context in place, we can begin looking at NAnt as
asuitable tool to handle build and deploy activities for Etomic. We discuss how NAnt
scripts work, describe the core features and fundamental structures of a script, and out-
line a potential framework for scripts to apply to the applications used by Etomic. We
willalso touch on some possibilities for more advanced use of NAnt later on.
Chapter 3,“Important NAnt Tasks”:Having considered the activities for build and
deploy, and proposed a skeleton script for both, we now take a look at the variety of
NAntand NAntContrib tasks that are available for use. We split these tasks into a few
categories and consider some practical examples of the application of these tasks.
INTRODUCTION
xxvi
Documents you may be interested
Documents you may be interested