hxxp://www.thegioioto.com.vn
Trang web tiếng Việt về ôtô
Friday, June 30, 2006
Thursday, June 29, 2006
KeyLogger Preview
hxxp://www.securityfocus.com/infocus/1829
khá hay, nói rất chi tiết về các loại KeyLogger và cách phòng tránh.
khá hay, nói rất chi tiết về các loại KeyLogger và cách phòng tránh.
Wednesday, June 28, 2006
Tham khảo thêm
http://www2.sys-con.com/ITSG/virtualcd/Dotnet/archives/0104/brown/index.html
WMI on WindowsXP Embedded
1
http://support.microsoft.com/newsgroups/default.aspx?dg=microsoft.public.windowsxp.embedded&tid=95dabda4-8776-4305-a108-80ff45d24dd4&p=1
2
http://msdn.microsoft.com/chats/transcripts/mobileembedded/05_0810_dn_emb.aspx
3.
http://www.derkeiler.com/Newsgroups/microsoft.public.windowsxp.security_admin/2003-03/2572.html
4.
http://www.pcreview.co.uk/forums/archive/forum-171.php
WMI on WindowsXP Embedded
1
http://support.microsoft.com/newsgroups/default.aspx?dg=microsoft.public.windowsxp.embedded&tid=95dabda4-8776-4305-a108-80ff45d24dd4&p=1
2
http://msdn.microsoft.com/chats/transcripts/mobileembedded/05_0810_dn_emb.aspx
3.
http://www.derkeiler.com/Newsgroups/microsoft.public.windowsxp.security_admin/2003-03/2572.html
4.
http://www.pcreview.co.uk/forums/archive/forum-171.php
Một vài lưu ý khi làm với Image trên .Net (cont)
3. Điều chỉnh các thông số trước khi save : dùng để điều chỉnh Quality của ảnh, v.v.... giúp giảm size của ảnh
Listing 1: Rotating a Bitmap Image
private int _totalRotation = 0;
private void btnRotateCW_Click
(object sender, System.EventArgs e)
{
// Rotate image clockwise (90)
if (pbox.Image != null)
{
_totalRotation += 90;
pbox.Image.RotateFlip(
RotateFlipType.Rotate90FlipNone);
pbox.Invalidate();
}
}
private void btnRotateCC_Click
(object sender, System.EventArgs e)
{
// Rotate image counter-clockwise (270)
if (pbox.Image != null)
{
_totalRotation -= 90;
pbox.Image.RotateFlip(
RotateFlipType.Rotate270FlipNone);
pbox.Invalidate();
}
}
Listing 2: Saving a Bitmap Image
private string _origFileName = null;
private void btnSave_Click
(object sender, EventArgs e)
{
if (_origFileName == null)
return;
SaveFileDialog dlg = new SaveFileDialog();
dlg.Filter = "JPG Files (*.jpg)|*.jpg";
dlg.FileName = _origFileName;
if (dlg.ShowDialog() == DialogResult.OK)
{
pbox.Image.Save(dlg.FileName,
ImageFormat.Jpeg);
}
}
Listing 3: Locating an ImageCodecInfo object
private ImageCodecInfo GetImageCodec(string mimeType)
{
ImageCodecInfo[] codecs
= ImageCodecInfo.GetImageEncoders();
foreach (ImageCodecInfo codec in codecs)
{
if (String.Compare(codec.MimeType,
mimeType, true) == 0)
{
return codec;
}
}
return null;
}
Listing 4: Saving an image using encoder parameters
private string _origFileName = null;
private Bitmap _origBitmap = null;
private ImageCodecInfo jpgCodec = null;
private void btnSave_Click
(object sender, EventArgs e)
{
if (_origFileName == null)
return;
SaveFileDialog dlg = new SaveFileDialog();
dlg.Filter = "JPG Files (*.jpg)|*.jpg";
dlg.FileName = _origFileName;
if (dlg.ShowDialog() != DialogResult.OK)
return;
// Ready to save the image
while (_totalRotation < 0)
_totalRotation += 360;
_totalRotation %= 360;
if (_totalRotation == 0 && !cboxQuality.Checked)
{
// No parameters, so just save image.
_origBitmap.Save(dlg.FileName,
ImageFormat.Jpeg);
}
else
{
if (jpgCodec == null)
jpgCodec = GetImageCodec("image/jpeg");
// Determine required number of parameters
int paramSize = udQuality.Enabled ? 1 : 0;
if (_totalRotation != 0)
paramSize ++;
EncoderParameters encoderParams
= new EncoderParameters(paramSize);
if (_totalRotation != 0)
{
// Create transformation parameter
EncoderValue rValue
= EncoderValue.TransformRotate90;
if (_totalRotation == 180)
rValue = EncoderValue.TransformRotate180;
else if (_totalRotation == 270)
rValue = EncoderValue.TransformRotate270;
EncoderParameter tParam
= new EncoderParameter(
Encoder.Transformation,
(long)rotateValue);
encoderParams.Param[paramSize-1] = tParam;
}
if (udQuality.Enabled)
{
// Create quality parameter
EncoderParameter qParam
= new EncoderParameter(
Encoder.Quality,
(long)udQuality.Value);
encoderParams.Param[0] = qParam;
}
// Save the image using encoder settings
_origBitmap.Save(dlg.FileName,
jpgCodec, encoderParams);
}
}
Listing 1: Rotating a Bitmap Image
private int _totalRotation = 0;
private void btnRotateCW_Click
(object sender, System.EventArgs e)
{
// Rotate image clockwise (90)
if (pbox.Image != null)
{
_totalRotation += 90;
pbox.Image.RotateFlip(
RotateFlipType.Rotate90FlipNone);
pbox.Invalidate();
}
}
private void btnRotateCC_Click
(object sender, System.EventArgs e)
{
// Rotate image counter-clockwise (270)
if (pbox.Image != null)
{
_totalRotation -= 90;
pbox.Image.RotateFlip(
RotateFlipType.Rotate270FlipNone);
pbox.Invalidate();
}
}
Listing 2: Saving a Bitmap Image
private string _origFileName = null;
private void btnSave_Click
(object sender, EventArgs e)
{
if (_origFileName == null)
return;
SaveFileDialog dlg = new SaveFileDialog();
dlg.Filter = "JPG Files (*.jpg)|*.jpg";
dlg.FileName = _origFileName;
if (dlg.ShowDialog() == DialogResult.OK)
{
pbox.Image.Save(dlg.FileName,
ImageFormat.Jpeg);
}
}
Listing 3: Locating an ImageCodecInfo object
private ImageCodecInfo GetImageCodec(string mimeType)
{
ImageCodecInfo[] codecs
= ImageCodecInfo.GetImageEncoders();
foreach (ImageCodecInfo codec in codecs)
{
if (String.Compare(codec.MimeType,
mimeType, true) == 0)
{
return codec;
}
}
return null;
}
Listing 4: Saving an image using encoder parameters
private string _origFileName = null;
private Bitmap _origBitmap = null;
private ImageCodecInfo jpgCodec = null;
private void btnSave_Click
(object sender, EventArgs e)
{
if (_origFileName == null)
return;
SaveFileDialog dlg = new SaveFileDialog();
dlg.Filter = "JPG Files (*.jpg)|*.jpg";
dlg.FileName = _origFileName;
if (dlg.ShowDialog() != DialogResult.OK)
return;
// Ready to save the image
while (_totalRotation < 0)
_totalRotation += 360;
_totalRotation %= 360;
if (_totalRotation == 0 && !cboxQuality.Checked)
{
// No parameters, so just save image.
_origBitmap.Save(dlg.FileName,
ImageFormat.Jpeg);
}
else
{
if (jpgCodec == null)
jpgCodec = GetImageCodec("image/jpeg");
// Determine required number of parameters
int paramSize = udQuality.Enabled ? 1 : 0;
if (_totalRotation != 0)
paramSize ++;
EncoderParameters encoderParams
= new EncoderParameters(paramSize);
if (_totalRotation != 0)
{
// Create transformation parameter
EncoderValue rValue
= EncoderValue.TransformRotate90;
if (_totalRotation == 180)
rValue = EncoderValue.TransformRotate180;
else if (_totalRotation == 270)
rValue = EncoderValue.TransformRotate270;
EncoderParameter tParam
= new EncoderParameter(
Encoder.Transformation,
(long)rotateValue);
encoderParams.Param[paramSize-1] = tParam;
}
if (udQuality.Enabled)
{
// Create quality parameter
EncoderParameter qParam
= new EncoderParameter(
Encoder.Quality,
(long)udQuality.Value);
encoderParams.Param[0] = qParam;
}
// Save the image using encoder settings
_origBitmap.Save(dlg.FileName,
jpgCodec, encoderParams);
}
}
Một vài lưu ý khi làm với Image trên .Net (cont)
2. Class Để Resize một Bitmap
can found at: hxxp://www.codeproject.com/csharp/imageresize.asp
khá đơn giản và dễ hiểu.
can found at: hxxp://www.codeproject.com/csharp/imageresize.asp
khá đơn giản và dễ hiểu.
Một vài lưu ý khi làm với Image trên .Net
1. Khi cần gửi một Bitmap thẳng qua Client, nhất thiết là phải gửi mảng byte[], ta dùng đoạn code sau:
// we have an Image or Bitmap object already, named imageNeedToSend
MemoryStream ms = new MemoryStream();
imageNeedToSend.Save(Stream, System.Drawing.ImageFormat)
the MemoryStream class has a method to return a ByteArray.
ms.ToArray()
// we have an Image or Bitmap object already, named imageNeedToSend
MemoryStream ms = new MemoryStream();
imageNeedToSend.Save(Stream, System.Drawing.ImageFormat)
the MemoryStream class has a method to return a ByteArray.
ms.ToArray()
Kiểm tra xe trước khi đi xa
Kiểm tra dầu động cơ, dầu thắng, bánh ....
hxxp://www.vnexpress.net/Vietnam/Oto-Xe-may/2006/06/3B9EB40D/
hxxp://www.vnexpress.net/Vietnam/Oto-Xe-may/2006/06/3B9EB40D/
Tuesday, June 27, 2006
Monday, June 26, 2006
Cười với Vova - cont
Giờ học tiếng Pháp hôm đó có 1 giáo viên đến dự giờ nên cô giáo rất run. Cô vừa viết lên bảng một từ tiếng Pháp và hỏi:
- Em nào có thể nói cho cô biết nghĩa của từ này không?
Đúng lúc đó thì cô làm rơi viên phấn xuống đất. Lúc cô cúi xuống nhặt thì ông thầy ngồi lẩm bẩm câu gì đó. Vova vội giơ tay xung phong trả lời.
- Mời em Vova, từ này là gì?
- Dạ, thưa cô nghĩa là "mông to quá" ạ!
- Ngồi xuống, 1 điểm. Cô giáo tức giận nói
- Lần sau nếu không biết thì đừng có nhắc bài nhé!. Vova quay sang hầm hừ nói với ông thầy ngồi cạnh!
- Em nào có thể nói cho cô biết nghĩa của từ này không?
Đúng lúc đó thì cô làm rơi viên phấn xuống đất. Lúc cô cúi xuống nhặt thì ông thầy ngồi lẩm bẩm câu gì đó. Vova vội giơ tay xung phong trả lời.
- Mời em Vova, từ này là gì?
- Dạ, thưa cô nghĩa là "mông to quá" ạ!
- Ngồi xuống, 1 điểm. Cô giáo tức giận nói
- Lần sau nếu không biết thì đừng có nhắc bài nhé!. Vova quay sang hầm hừ nói với ông thầy ngồi cạnh!
Cười với Vova - cont
Bé Vôva vào lớp 1. Để buổi đi học đầu tiên của các cháu được hứng thú, cô giáo bắt đầu bằng trò chơi đố vui.
Cô nghĩ đến cái bàn, rồi đặt câu hỏi :
- Đố các em, trong nhà ta có cái gì bằng gỗ, có 4 chân?
Bé Vôva nhanh nhảu:
- Cái ghế ạ
Cô gật gù, ừ, cái em nghĩ cũng được đấy, nhưng mà câu trả lời của cô là cái bàn. Rồi cô đố tiếp, lần này cô nghĩ đến con mèo:
- Đố các em, trong nhà ta nuôi con gì có 4 chân mà các em hay vuốt ve nó?
Bé Vôva vẫn là người nhanh nhất:
- Thưa cô, con chó ạ.
- Ừ cũng được đấy, cô nói, em giỏi lắm, nhưng cái câu trả lời của cô là con mèo cơ.
Bé Vôva xin phép cô ra câu đố:
- Đố cô, cái gì mà đàn ông hay giấu trong quần lâu lâu lấy ra sử dụng, dài dài, tròn tròn , đầu đỏ đỏ...
Chưa nói hết câu, cô giáo đã nổi giận ngắt ngang:
- Vôva, sao em dám ăn nói bậy bạ như vậy
Nước mắt lưng tròng, bé Vôva thút thít trả lời:
- Cái mà cô nghĩ cũng được đấy, nhưng câu trả lời của em là những que diêm cơ...
Cô nghĩ đến cái bàn, rồi đặt câu hỏi :
- Đố các em, trong nhà ta có cái gì bằng gỗ, có 4 chân?
Bé Vôva nhanh nhảu:
- Cái ghế ạ
Cô gật gù, ừ, cái em nghĩ cũng được đấy, nhưng mà câu trả lời của cô là cái bàn. Rồi cô đố tiếp, lần này cô nghĩ đến con mèo:
- Đố các em, trong nhà ta nuôi con gì có 4 chân mà các em hay vuốt ve nó?
Bé Vôva vẫn là người nhanh nhất:
- Thưa cô, con chó ạ.
- Ừ cũng được đấy, cô nói, em giỏi lắm, nhưng cái câu trả lời của cô là con mèo cơ.
Bé Vôva xin phép cô ra câu đố:
- Đố cô, cái gì mà đàn ông hay giấu trong quần lâu lâu lấy ra sử dụng, dài dài, tròn tròn , đầu đỏ đỏ...
Chưa nói hết câu, cô giáo đã nổi giận ngắt ngang:
- Vôva, sao em dám ăn nói bậy bạ như vậy
Nước mắt lưng tròng, bé Vôva thút thít trả lời:
- Cái mà cô nghĩ cũng được đấy, nhưng câu trả lời của em là những que diêm cơ...
Cười với Vova - from UDS
Cô giáo hôm nay mặc áo mới, trên ngực thêu hoa hồng. Thấy các học sinh chăm chú nhìn, cô giáo rất vui, hỏi: "Thế các em có biết hoa hồng sống bằng gì ko?"
Vôva trả lời: "Thưa cô bằng sữa ạ" Cô giáo đỏ mặt đuổi Vôva ra đứng hành lang.
Thầy hiệu trưởng đi ngang thấy Vôva vật vờ ở ấy, hỏi đầu đuôi sự tình rồi nói: "Vôva em nhầm rồi, hoa hồng sống bằng phân và nước tiểu"
Vôva lầm bầm:"Em đâu biết rễ nó dài đến thế"
Vôva trả lời: "Thưa cô bằng sữa ạ" Cô giáo đỏ mặt đuổi Vôva ra đứng hành lang.
Thầy hiệu trưởng đi ngang thấy Vôva vật vờ ở ấy, hỏi đầu đuôi sự tình rồi nói: "Vôva em nhầm rồi, hoa hồng sống bằng phân và nước tiểu"
Vôva lầm bầm:"Em đâu biết rễ nó dài đến thế"
Học tiếng Anh tại hội Việt - Mỹ
Có một ông người Việt và một ông Tây đi đụng phải nhau, ông người Việt thấy thế bàn xin lỗi:
- I'm sorry
- I'm sorry, too - ông Tây lịch sự đáp lại
- I'm sorry, three - ông người Việt trả lời
Ông Tây nghe vậy thấy lạ quá bèn hỏi:
- What are you sorry for?
- I'm sorry five - ông người Việt trả lời
Ông Tây nghe vậy bực quá:
- Shit!
- Seven - ông người Việt đáp lại tỉnh queo.
- I'm sorry
- I'm sorry, too - ông Tây lịch sự đáp lại
- I'm sorry, three - ông người Việt trả lời
Ông Tây nghe vậy thấy lạ quá bèn hỏi:
- What are you sorry for?
- I'm sorry five - ông người Việt trả lời
Ông Tây nghe vậy bực quá:
- Shit!
- Seven - ông người Việt đáp lại tỉnh queo.
Thursday, June 22, 2006
Scancode Map example
Trong ví dụ sau ta sẽ bỏ đi phím delete trên numpad và swap phím delete gần nút phím End với phím Scroll Lock
http://photos1.blogger.com/hello/86/9387/1024/swapKey.jpg
http://photos1.blogger.com/hello/86/9387/1024/swapKey.jpg
Dùng Scancode Map
Cái này dùng để định nghĩa map các phím trên keyboard
Ví dụ: khi user nhấn nút a thì các map này chỉnh lại thành phím b
Dùng HKEY_LOCAL_MACHINE nếu muốn toàn bộ hệ thống (mọi user) đều dùng map này ngược lại dùng CURRENT_USER để chỉ chỉnh cho user hiện tại
Step1: vào
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Keyboard Layout
Step2: Add thêm Value Scancode Map có kiểu là REG_BINARY
Xem ví dụ sau để hiểu cách thêm vào
00 00 00 00 00 00 00 00 02 00 00 00 1d 00 3a 00 00 00 00 00
Trong ví dụ trên:
+ Tám cặp số "00" là bắt buộc phải có, tiếp đến là số
mapping ("02") ta sẽ định nghĩa, kế đến là phím đầu tiên
1D 00 là phím LCtrl sẽ thay thế cho phím 3A 00 là phím CapsLock, 4 cặp số "00" sau cùng là bắt buộc.
Lưu ý: Nếu muốn swap hay phím phải làm:
Swap phím 1 -> phím 2 và swap phím 2 về lại phím 1
Step 4: Restart hay Log Off
Chi tiết để tham khảo và lấy list các key code tại:
hxxp://www.microsoft.com/whdc/device/input/w2kscan-map.mspx
Ví dụ: khi user nhấn nút a thì các map này chỉnh lại thành phím b
Dùng HKEY_LOCAL_MACHINE nếu muốn toàn bộ hệ thống (mọi user) đều dùng map này ngược lại dùng CURRENT_USER để chỉ chỉnh cho user hiện tại
Step1: vào
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Keyboard Layout
Step2: Add thêm Value Scancode Map có kiểu là REG_BINARY
Xem ví dụ sau để hiểu cách thêm vào
00 00 00 00 00 00 00 00 02 00 00 00 1d 00 3a 00 00 00 00 00
Trong ví dụ trên:
+ Tám cặp số "00" là bắt buộc phải có, tiếp đến là số
mapping ("02") ta sẽ định nghĩa, kế đến là phím đầu tiên
1D 00 là phím LCtrl sẽ thay thế cho phím 3A 00 là phím CapsLock, 4 cặp số "00" sau cùng là bắt buộc.
Lưu ý: Nếu muốn swap hay phím phải làm:
Swap phím 1 -> phím 2 và swap phím 2 về lại phím 1
Step 4: Restart hay Log Off
Chi tiết để tham khảo và lấy list các key code tại:
hxxp://www.microsoft.com/whdc/device/input/w2kscan-map.mspx
Wednesday, June 21, 2006
Diable AutoRun CD
Step1: Run/ regedit
Step2: Go to ->HKEY_LOCAL_MACHINE->SYSTEM->CurrentControlSet->Services>Cdrom->
Step3: Change AutoRun ValueData to 0
Step4: Restart again.
Step2: Go to ->HKEY_LOCAL_MACHINE->SYSTEM->CurrentControlSet->Services>Cdrom->
Step3: Change AutoRun ValueData to 0
Step4: Restart again.
Không thể Debug trong VS .Net
Unable to debugging
hxxp://www.gotdotnet.com/community/messageboard/Thread.aspx?id=239063
hxxp://www.gotdotnet.com/community/messageboard/Thread.aspx?id=239063
Tuesday, June 20, 2006
Backup links
Game Mahjong Escape
hxxp://rapidshare.de/files/21139890/escaping.rar.html
Password: estrange
Link ve hook tren C#
hxxp://www.codeproject.com/csharp/GlobalSystemHook.asp
hxxp://www.codeproject.com/csharp/GlobalSystemHook.asp
hxxp://www.codeproject.com/csharp/globalhook.asp
hxxp://www.codeproject.com/info/search.asp?cats=3&cats=5&searchkw=keyboard+hook&Submit1=Search&author=&sd=15+Nov+1999&ed=20+Jun+2006
hxxp://rapidshare.de/files/21139890/escaping.rar.html
Password: estrange
Link ve hook tren C#
hxxp://www.codeproject.com/csharp/GlobalSystemHook.asp
hxxp://www.codeproject.com/csharp/GlobalSystemHook.asp
hxxp://www.codeproject.com/csharp/globalhook.asp
hxxp://www.codeproject.com/info/search.asp?cats=3&cats=5&searchkw=keyboard+hook&Submit1=Search&author=&sd=15+Nov+1999&ed=20+Jun+2006
.NET Framework Solutions: In Search of the Lost Win32 API
If you've begun programming using Microsoft's .NET Framework, you've discovered a lot of new and improved functionality. But, more than likely, you've also discovered a lot of missing functionality. Indeed, a third of the functions supported by the old Win32 API are not yet supported by .NET. Although you may not at first notice the loss of Win32 API functionality in .NET, the more you program, the more you'll realize how essential it is. As a programmer, you will not want to do without these solutions.
.NET Framework Solutions: In Search of the Lost Win32 API is one more thing you can't do without: a complete guide to your options for dealing with the functionality missing from .NET. As you'll learn, some functions are handily situated within Visual Basic or C#. In most cases, however, you'll need to access the old Win32 API from the .NET Framework. This is demanding work, but this book makes it easy, walking you through every step and paying special attention to the work of managing memory manually-the most error-prone part of the process. The topics covered inside are as varied as the missing functionality: direct hardware access, low-level security control, certain aspects of OS access, support for multimedia and utilities, and DirectX. You also get hard-to-find information on COM access, plus a collection of examples-dealing with DirectX and the MMC Snap-ins-that unite COM and Win32 access in especially illuminating ways.
.NET Framework Solutions: In Search of the Lost Win32 API is one more thing you can't do without: a complete guide to your options for dealing with the functionality missing from .NET. As you'll learn, some functions are handily situated within Visual Basic or C#. In most cases, however, you'll need to access the old Win32 API from the .NET Framework. This is demanding work, but this book makes it easy, walking you through every step and paying special attention to the work of managing memory manually-the most error-prone part of the process. The topics covered inside are as varied as the missing functionality: direct hardware access, low-level security control, certain aspects of OS access, support for multimedia and utilities, and DirectX. You also get hard-to-find information on COM access, plus a collection of examples-dealing with DirectX and the MMC Snap-ins-that unite COM and Win32 access in especially illuminating ways.
Maximizing .NET Performance
Maximizing .NET Performance will focus on providing developers and architects with information on performance characteristics of various aspects of the .NET Framework. In addition to providing high-level material on achieving software with good performance characteristics, the books aims to enhance readers’ knowledge of the design and implementation of the Framework, and to provide the tools and techniques to allow readers to conduct their own investigation into performance problems.
The dominant feature of this book will be the systematic analysis of performance relating to key Framework topics like remoting, garbage collection, and threading. Rather than a ‘tips and tricks’ approach, the book aims to provide a detailed exploration of each topic, and explore the ‘whys’ and ‘by how much’ aspects (with actual benchmark results) of performance that are often overlooked.
Author Information
Nicholas J. Wienholt - Nicholas J. Wienholt is a Windows and .NET consultant based in Sydney, Australia. He has worked on a variety of IT projects over the last decade, ranging from numerical modeling of beach erosion to financial and payroll systems. Career highlights include the highly successful NSW State Rail Passenger Information Display System (PIDS) project, and the Mobile Number Portability (MNP) system. Nick was also responsible for the design and implementation of the messaging layer for Concentrics Pty Ltd, a network provider to Australian telecommunication companies. Nick is the co-founder and president of the Sydney Deep .NET User group, writes technical articles for Pinnacle Publishing and the Microsoft Developer Network, and is a keen participant in .NET related newsgroups.
Table of Contents
Chapter 1: .NET Framework Performance
Chapter 2: Investigating Performance
Chapter 3: Class Design and Implementation
Chapter 4: Strings, Text and Regular Expressions
Chapter 5: Collections
Chapter 6: Language Specifics
Chapter 7: Garbage Collection and Object Lifetime Management
Chapter 8: Exceptions
Chapter 9: Security
Chapter 10: Threading
Chapter 11: IO and Serialization
Chapter 12: Remoting
Chapter 13: Unmanaged Code Interoperability
Chapter 14: The Common Language Runtime
Chapter 15: Solving Performance Problems
Appendix A: Performance Measurement Framework for .NET
Links: hxxp://tinyurl.com/zxhyt
The dominant feature of this book will be the systematic analysis of performance relating to key Framework topics like remoting, garbage collection, and threading. Rather than a ‘tips and tricks’ approach, the book aims to provide a detailed exploration of each topic, and explore the ‘whys’ and ‘by how much’ aspects (with actual benchmark results) of performance that are often overlooked.
Author Information
Nicholas J. Wienholt - Nicholas J. Wienholt is a Windows and .NET consultant based in Sydney, Australia. He has worked on a variety of IT projects over the last decade, ranging from numerical modeling of beach erosion to financial and payroll systems. Career highlights include the highly successful NSW State Rail Passenger Information Display System (PIDS) project, and the Mobile Number Portability (MNP) system. Nick was also responsible for the design and implementation of the messaging layer for Concentrics Pty Ltd, a network provider to Australian telecommunication companies. Nick is the co-founder and president of the Sydney Deep .NET User group, writes technical articles for Pinnacle Publishing and the Microsoft Developer Network, and is a keen participant in .NET related newsgroups.
Table of Contents
Chapter 1: .NET Framework Performance
Chapter 2: Investigating Performance
Chapter 3: Class Design and Implementation
Chapter 4: Strings, Text and Regular Expressions
Chapter 5: Collections
Chapter 6: Language Specifics
Chapter 7: Garbage Collection and Object Lifetime Management
Chapter 8: Exceptions
Chapter 9: Security
Chapter 10: Threading
Chapter 11: IO and Serialization
Chapter 12: Remoting
Chapter 13: Unmanaged Code Interoperability
Chapter 14: The Common Language Runtime
Chapter 15: Solving Performance Problems
Appendix A: Performance Measurement Framework for .NET
Links: hxxp://tinyurl.com/zxhyt
Subscribe to:
Posts (Atom)