Search Results for '프로그래밍/Asp.net'
9 posts related to '프로그래밍/Asp.net'
- 2010/11/06 C# Programming 에 유용한 툴 목록
- 2010/11/06 C# DNS nslookup 컴포넌트
- 2010/11/06 ASP.NET, Sql Injection 필터 예제 코드
- 2010/11/06 C#, IPAddress 및 Port 변환
- 2010/11/06 C#, gzip 압축 예제 코드
- 2009/08/07 scriptmanager 와 ajax.net
- 2009/08/07 원하는 컨트롤만 렌더링 하기
- 2009/08/07 Microsoft Chart Control
- 2009/08/07 asp:FileUpload 객체와 ThumbnailImage 만들기
http://msdn.microsoft.com/ko-kr/vcsharp/aa336818(en-us).aspx
Featured Tools
IMSL™ C# Numerical Library for Microsoft® .NET Applications
Extreme Optimization Mathematics Library for .NET
devAdvantage : C# Source Code Analyzer for Visual Studio .NET
Libraries and Other Stuff
Visual Guard
LibCheck
AQdevTeam
C-Sharpener For VB
{smartassembly}
SmartInspect
Visual Studio Spell Check Add-In - StudioSpell
C# Compilers and Frameworks
.NET Framework SDK Downloads
Visual C# 2005, Express Edition
Rotor?The Microsoft Shared Source CLI Implementation
Mono
eXtensible C#
DotGnu
Obfuscators
{smartassembly}
Dotfuscator .NET Obfuscator
Salamander .NET Obfuscator
Semantic Designs: C# Source Code Obfuscator
Spices.Net
Thinstall
Demeanor for .NET
Xenocode Postbuild 2006
.NET Reactor
Decompilers
Dis#
Decompiler.NET
Exemplar/Anakrino
Reflector .NET Decompiler
Salamander .NET Decompiler (C#, C++, Visual Basic .NET, IL, MSIL)
Xenocode Fox 2006
Profiler/Optimization Tools
NCover
ANTS Profiler
{smartassembly}
Salamander .NET Decompiler (C#, C++, Visual Basic .NET, IL, MSIL)
.NET Memory Profiler
AQtime .NET Edition 2 - Automated Profiling and Debugging
Compuware DevPartner Studio Professional Edition
Allocation Profiler
CoverageEye.NET
NProf
Rational PurifyPlus - Product Overview - IBM Software
Refactoring
C# Refactory
dotEASY
devAdvantage : C# Source Code Analyzer for Visual Studio .NET
ReSharper
DocumentatorMacros
Object Browsers
Reflector for .NET
.NET Component Inspector
LSW DotNet-Reflection-Browser
Editors
C# for emacs
Improve C# Plugin for Eclipse
CodeObject
Semantic Designs: C# Source Code Formatter
Development Environments (IDEs)
SharpDevelop
PowerToys for Visual Studio .NET 2003
Build Tools
NAnt?A .NET Build Tool
CruiseControl.NET
FinalBuilder
Visual Build Professional
Hippo.NET
MegaBuild
Standard Verifiers
FxCop
Testing
TestRunner for NUnit
HarnessIt
POCMock
.NETUnit
NUnit
TestComplete
X-Unity
csunit
Documentation
NDOC?Code Documentation Generator for .NET
SoftSteel C# Tutorial on Documentation
NetDoc
Roland Weigelt's GhostDoc
Database
ADO.NET Express
Data Access Application Block for .NET
DataLG: Generate Assemblies for Visual C# and Visual Basic .NET
DeKlarit
OlyMars
Regular Expressions
GotDotNet User Sample: Regular Expression Workbench (V2.00)
Regular Expression Designer
Expresso?A Tool for Building and Testing Regular Expressions
Graphics, Games and Drawing
CadLib
Sharp3D.Math Library
Animated Vector Graphics
명령행에서, 보통 사용하는 nslookup 을 사용자 프로그래밍에서 가능하게 하는 공개 컴포넌트 입니다. - 필요한곳에 잘 써먹음...^^ -
물론 이런 컴포넌트가 아닌, nslookup.exe 의 쉘을 받아서 구현이 가능하겠지만,. 구조적이지 않다는 점이 있겠지요..^^
사용법은, 참조에서 Bdev.Net.Dns.dll 를 참조하고, 다음 예제와 같은 코드를 또는 해당 메쏘드를 기반으로 하는 추가 코드를 구현하면 됩니다.
MXRecord[] records = Resolver.MXLookup("wssplex.net", dnsServerAddress);
foreach (MXRecord record in records)
{
Console.WriteLine("{0}, preference {1}", record.HostName, record.Preference);
}
특정 쿼리 타입 메쏘드 또는 공용 메쏘드에서 특정 쿼리 타입을 지정 해주거나...
Request request = new Request();
request.AddQuestion(new Question("wssplex.net", DnsType.MX, DnsClass.IN));
Response response = Resolver.Lookup(request, dnsServerAddress);
foreach (Answer answer in Answers)
{
MXRecord record = (MXRecord)answer.Record;
Console.WriteLine("{0}, preference {1}", record.HostName, record.Preference);
}
그리고, 같이 배포되는 데모 프로젝트의 소스를 보면, 좀더 응용이 가능합니다. 한가지 버그?? 라면,. 도메인을 정규편식으로 체크하는 Question 클래스의 아래 정규편식 입니다.
!Regex.IsMatch(domain, @"^[a-z|A-Z|0-9|-|_]{1,63}(\.[a-z|A-Z|0-9|-|_]{1,63})+$")
보통의 도메인은 맞긴 하나,. "-" 가 들어간 도메인은 매칭이 되지 않는 정규편식 입니다. 물론 소스코드 까지 배포가 되므로,. 직접 수정후 빌드해서 참조하면 되겠습니다.^^;
{"--",";--",";","/*","*/","@@","@",
"char","nchar","varchar","nvarchar",
"alter","begin","cast","create","cursor","declare","delete","drop",
"end","exec","execute",
"fetch","insert","kill","open",
"select", "sys","sysobjects","syscolumns",
"table","update"};
Sql Injection 이 가능한 문자열을 배열로 지정을 해놓고, 웹서버에 요청되는 내용을 위 내용으로 필터링을 하는 것입니다.
특히 요즘에는,. 쿼리문을 바이너리 문자열로 인코딩하여 실제 SQL Server 에서는 실행시 정상적인 쿼리문으로 실행되도록 Cast 형변환,. 즉 Declare 와 Cast 를 많이 쓰는것 같습니다.
사이트의 개별 코드와는 상관없이 사이트 전역에 영향을 주는 방법이긴 합니다만, Form 값으로 들어오는 부분도 필터링을 하므로,. 보통 게시판을 글 내용에 있는 것도 필터가 될수도 있겠네요.
요즘,. Sql Injection 이 극성인데,..
조금이나마 도움이 될수도 있을것 같습니다.^^
public string LongToIPAddress(uint IPAddr)
{
return new System.Net.IPAddress(IPAddr).ToString();
}
//문자열 IPAddress 를 숫자형으로 변환
public uint IPAddressToLong(string IPAddr)
{
System.Net.IPAddress oIP=System.Net.IPAddress.Parse(IPAddr);
byte[] byteIP=oIP.GetAddressBytes();
uint ip=(uint)byteIP[3]<<24;
ip+=(uint)byteIP[2]<<16;
ip+=(uint)byteIP[1]<<8;
ip+=(uint)byteIP[0];
return ip;
}
//byte 단위 값을 숫자형 값으로 변환
public int LocalPort(uint dwLocalPort)
{
return (int)(((dwLocalPort & 0xFF00) >> 8) | ((dwLocalPort & 0x00FF) << 8));
}
using System.IO.Compression;
FileStream fs = new FileStream("c:\\wssplex.gz",FileMode.CreateNew);
GZipStream gz = new GZipStream(fs, CompressionMode.Compress);
StreamWriter sw = new StreamWriter(gz);
sw.Write("data");
sw.Close();
http://msdn.microsoft.com/ko-kr/library/system.io.compression.gzipstream.aspx
scriptmanager 를 사용하기 위해서 읽어 보아야 할것..
첫째. msdn 에서 scriptmanager에 대한 내용을 읽어 본다!
http://msdn.microsoft.com/msdnmag/issues/07/09/ScriptManager/default.aspx?loc=ko#S1
둘째. 페이지의 클라이언트측 라이프 사이클을 관장하는 역할을 가진 PageRequestManager 에 대해서 알아본다.
셋째. 기타 팁에대해서 검색해 본다
http://blog.naver.com/kdllee?Redirect=Log&logNo=70017296323
http://blog.naver.com/withu21?Redirect=Log&logNo=120044334700 <--mgr.get_isInAsyncPostBack() 가 핵심!
시간이 나시는 분들은 microsoftajax.js 와 microsoftajaxwebforms.js 에 대해서 추가적으로 공부해 보는것도 좋을 듯 합니당~
* MicrosoftAjax.js : ASP.NET AJAX 가 제공하는 기본 스크립트엔진
MicrosoftAjaxWebForms.js : ASP.NET AJAX 의 스크립트측 프레임워그카 웹 폼 페이지와 함께 동작하기 위한 코드 구현
위의 두 파일은 (C:\Program Files\Microsoft ASP.NET\ASP.NET 2.0 AJAX Extensions\v1.0.61025\MicrosoftAjaxLibrary\System.Web.Extensions\1.0.61025.0) 에 있습니다. 다른 곳에 설치하신분은 알아서 찾아보시길....
FrameWork 2.0을 사용하여 프로젝트 진행시에 Aajx 사용을 위해 UpdatePanel을 사용할 경우가 많으며, 화려함 또는 사용자의 편의성을 위하여 다양한 Ajax 기법들을 사용하게 될것이라는 점은 분명한 사실이며, 이제는 웹프로그램의 기본사양이 되었습니다.
그중 ScriptManager는 .net AJax 프로젝트의 기본이 되는 부분이며 가장 핵심이 되는 사항인듯합니다.
ajax 보면 볼수록 매력적인듯 하지만 언제나 그렇듯이 과함은 모자람만 못한듯 합니다..
UpdataPanel의 경우에는 View State를 유지하기 위한 오버헤드가 발생한다는 사실을 언제나 주지하고 있어야 할듯 합니다.
Application의 경우 세세한 곳까지 성능을 고려치 않아도 하드웨어의 발전으로 말미암아 큰 차이점이 없겠지만. 아직 네트워크트래픽은 웹프로램을 하는 사람으로써 무시할 수 없는 큰 요소임에는 분명하니깐요.
updatepanel을 사용하고 .net 에서 제공하는 편리한 도구를 사용하여 표준적이며 유지보수가 용이한 코드를 작성을 할 것인지. 아니면 개별적으로 코딩을 하여 쫌더 좋은 성능과 자유로운 구현을 할 것인지에 대한 고민은 계속 될듯 합니다.
microsoftAjax.js와 microsoftAjaxWebForms.js를 분석하여 ms의 ajax javascript 에 대한 더 깊은 이해를 하게 된다면 둘다 만족하는 결과를 낼수 있다고 생각은 하지만 보유한 스킬의 부족과 귀차니즘으로 말미암아.. 먼 훗날이 될듯합니다.(오지 않을지도 모르는 -.-;;)
가면 갈수록 스킬에 대한 자신감이 떨어지고 있는듯합니다만.. 다시 한번 외쳐 봅니다
할수있다!! 가자 가보는거다!
1. 파일(htm or txt )로 되어 있는 컨텐츠를 form의 순서에 맞게 입력하기
top.Text = "<div>top</div>";
form1.Controls.AddAt(0, top);
protected override void Render(HtmlTextWriter writer)
{
if (false)
{
Panel1.RenderControl(writer);
writer.Flush();
}
else
{
base.Render(writer);
}
}
곰곰히 생각해 보니 마스터페이지를 사용하는 것과 어떠한 차이점을 모르겠다.
그래서 지금은 고민중.. 마스터 페이지를 사용할 것이냐. 아니면 순수하게 모두 구현을 할것이냐!!!
생각하기 전에 구현을 해버리는 성격이었는데 이제야 생각하는 개발자가 되어 가는가 보다.
아!! 또하나의 이유.. 좌측 메뉴에서 선택했을때 페이지가 리로드 되면서 항상 컨텐츠가 바뀔 필요는 없지 않을까? 하는 생각에서 Render 이벤트에서 하나의 판넬만 렌더링을 시켰다. ajax 요청시 panel의 내용만 랜더링 된것으로 받아서 특정 위치에 add 시켜 볼까 하는 마음에... 근데.. 이것도 updatepanel을 사용하면 해결된다.. 어떤게 좋을지는 고민쫌 해보자.
[2009-03-09] Microsoft Chart Control 사용하기 (I) | |
[2009-03-13] Microsoft Chart Control (II) - ChartArea와 Series | |
[2009-03-17] Microsoft Chart Control (III) - 선형 차트와 영역 차트 | |
[2009-03-24] Microsoft Chart Control (IV) - 막대 차트 | |
[2009-04-03] Microsoft Chart Control (V) - Stacked 차트의 이해 | |
[2009-04-13] Microsoft Chart Control (VI) - 원형 차트 | |
[2009-04-21] Micosoft Chart Control (VII) - 방사형 차트 | |
[2009-04-28] Micosoft Chart Control (VIII) - 범례 | |
[2009-06-10] Microsoft Chart Control (IX) - 공백 값의 처리 |
회사 홈페이지를 만들때 ThumbnailImage가 들어가서 보여줘야한다는 얘기에 테스트를 했다.
오랜에 Web 쪽 소스 ( 정확히는 asp.net 소스) 를 보니 왜이렇게 낳선지...
asp.net2 에 FileUpload 객체가 있더라.. 1쩜대에서는 HTML 컨트롤을 서버 컨트롤로 바꿔서 했던거 같은데
뭐 어쨌든 바뀌긴 했다 ㅡㅡ;
일단 테스트 테스트
if (FileUpload1.PostedFile != null)
{
string strFilePath = FileUpload1.PostedFile.FileName;
string strFileLength = FileUpload1.PostedFile.ContentLength.ToString();
string strFileType = FileUpload1.PostedFile.ContentType.ToString();
System.IO.FileInfo fi = new System.IO.FileInfo(strFilePath);
string strFileName = fi.Name;
string strNewPath = Request.PhysicalApplicationPath + @"\upload\image\" + strFileName;
FileUpload1.SaveAs(strNewPath);
Response.Write("파일명 : " + strFileName + "<br />파일 크기 : " + strFileLength + "bytes<br />파일 타입 : " + strFileType);
System.Drawing.Image rImg;
rImg = System.Drawing.Image.FromFile(strNewPath);
rImg = rImg.GetThumbnailImage(40,40,null,IntPtr.Zero);
string thumFileUrl = Request.PhysicalApplicationPath + @"\upload\image\Thumbnail\" + strFileName;
rImg.Save(thumFileUrl,System.Drawing.Imaging.ImageFormat.Jpeg);
}
두가지를 합쳤다. 파일을 업로드 하면 Thumbnail 폴더에는 썸네일이미지가 아주 잘 들어간다.
테스트이기 때문에 변수로 처리한것 보다 그냥 고정으로 입력해 놓은게 많다.
이제 저걸 어찌 고쳐서 활용할지 생각해 봐야 겠다. ( 많이 쓰일듯.. 흐흐 )