. Net Metaprogramming in NET

Source: Internet
Author: User

Reading this book recently is more practical. Take some time to translate the public part of the content. The following part is the preface.

The specific address of the book is:

Http://www.amazon.cn/Metaprogramming-in-NET-Hazzard-Kevin/dp/1617290262/ref=sr_1_1? Ie = UTF8 & qid = 1374625885 & sr = 8-1 & keywords = Metaprogramming ++ in +. NET

 

Collation

I have explained the issue of metaprogramming from three aspects: as a computer scientist, business developer, and. NET Framework.

From the perspective of computer science, from the perspective of language, our industry has basically stagnated, and it has been a very long time. The slow evolution of 3GLs (third-generation language) from C to C ++ to Java to C # has been gradually improved, but there is no developer's work efficiency, code maintainability, and Complexity Reduction, or other significant advances in meaningful indicators.

(In this example, I chose the progress of C language because it may be the most widely known. Compared with BASIC, Pascal, and many other language families, it can be more than an order of magnitude .)

Meta-programming provides interesting possibilities around DSL and other abstract concepts that may eventually break the 3GL world concept of the past 20-30 years. Although this book does not focus on such a long-term goal, I think it can serve as a starting point. Using metaprogramming in. NET to get valuable ideas may inspire you to understand the future of our industry with countless core ideas.

As a business developer over 25 years ago, I have seen that metaprogramming has become one of the most popular and important software development tools. Metaprogramming can be used for code generators, and software can dynamically adjust its behavior during runtime.

In the middle of 1990s, Microsoft and others tried to create a "Wizard" to generate code for different business application scenarios. Today, such a code generation tool is considered priceless in environments such as Ruby on Rails, Eclipse, and Visual Studio. Most enterprise developers rely on their tools to produce a large amount of code and build processes every day.

Similarly, developers rely on code Mock framework testing, dynamic UI generation tools, rule engines, and other tools generated at runtime. In more subtle aspects, for example, using introspection (reflection) to create a data binding framework, metaprogramming is pervasive.

This book explores some related technologies and methods used to implement code generation and dynamic applications for the development, construction, and operation of application lifecycle stages. Understanding these concepts is important to effectively use existing tools, as well as to creating yourself or improving those tools that exist.

Finally, as the author of the widely used CLSA. NET business object framework. Within my framework, I have widely used many techniques discussed in this book, including reflection, dynamic type loading, and Expression Tree.

Without these technologies, there will be no CSLA. NET Framework without the basic concepts of metaprogramming. CSLA. NET is not unique in this regard. Many data layer, service layer, and presentation layer frameworks use a large number of meta programming technologies to provide flexible support for Object-relationship ing, business rules, verification rules, data binding, and dynamic UI generation.

In my opinion, metaprogramming is very important because its core concepts are in popular development and testing frameworks and tools, it is used in code generation tools and dynamic application behavior. This is also the future of our industry. We look forward to improving maintainability and reducing the cost of software life cycle. It is one of the most promising key fields in metaprogramming.

This book is a good way to start to understand and give full play to the meta programming capabilities.

 

ROCKFORD LHOTKA

CTO AT MAGENIC

 

CSLA.. NET Framework by CSLA. NET is. the. NET software development framework helps developers build a powerful and maintainable business logic layer for applications such as Windows, Web, and services and workflows ". CSLA is short for Component-based, Scalable, and Logical Architecture. CSLA. NET is an N-tier distributed framework designed by Rockford Lhotka based on. Net.

Http://www.cslanet.com/

 

-- The original text is as follows

Foreword

When I think about metaprogramming I view it through three sets of experience: as a computer scientist, a business developer, and a. NET framework author.

From a computer science perspective, it is clear that our industry has been largely stagnant from a language perspective for an extremely long time. the slow evolution of 3GLs (third-generation versions) from C to C ++ to Java to C # has resulted in incremental improvements, but no major leaps in terms of developer productitions, maintainability of code, function of complexity, or other meaningful metrics.

(I chose the C language progression in my example because it is perhaps the most widely known. Comparable progressions exist for BASIC, Pascal, and other language families .)

Metaprogramming offers interesting possibilities around the creation of domain-specific ages AGES and other reply action concepts that cocould eventually break us out of the 3GL world we 've lived in for the past 20-30 years. although this book doesn' t focus on such a long-term goal, I think you can use Metaprogramming in. NET as a starting point to gain valuable perspective on myriad core ideas that might inspire you to think more about the future of our industry.

As someone who's been a business developer for over 25 years, I 've watched as metaprogramming has become one of the most mainstream and important tools for software development. metaprogramming enables development time code generation as well as software that can dynamically adapt its behaviors at runtime.

In the mid-1990s people mocked attempts by Microsoft and others to create "wizards" that generated code for various business application scenarios. today, such code generation tools are considered invaluable in environments as varied as Ruby on Rails, Eclipse, and Visual Studio. most business developers rely daily on massive amounts of code generated by their tools during the development and build process.

Similarly, developers rely on runtime-generated code created by test mocking frameworks, dynamic UI generation tools, rules engines, and more. even more subtle aspects of metaprogramming, such as the use of introspection (reflection) to create data binding frameworks, are pervasive.

This book has es a number of the underlying technologies and techniques used to implement code generation and dynamic applications during the development, build, and runtime phases of an application's lifecycle. understanding these concepts is important for your tive use of existing tools, and critical for creating your own or improving those that exist.

Finally, I am the author of the widely used CSLA. NET business objects framework. within my framework I make extensive use of privileges of the techniques discussed in this book, including reflection, dynamic type loading, and expression trees.

A framework such as CSLA. NET couldn't exist without these technologies, and without the basic concepts of metaprogramming. nor is CSLA. NET unique in this regard. structured frameworks in the data layer, business layer, and presentation layer make heavy use of metaprogramming techniques to provide broad and flexible support for object-relational mapping, business rules, validation rules, data binding, and dynamic UI generation.

In my view, metaprogramming is extremely important because its core concepts are used in popular development and testing frameworks and tools, as well as to enable code generation tooling and dynamic application behaviors. it is also one of the most promising areas of focus for the future of our industry as we look for ways to improve maintainability and reduce the cost of software over lifeits time.

This book is an excellent way to get started down the road of understanding and fully using the power of metaprogramming.

ROCKFORD LHOTKA

CTO AT MAGENIC

Creator of the csla. NET FRAMEWORK

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.